mirror of
https://gitlab.freedesktop.org/wayland/weston
synced 2024-09-06 18:05:39 +00:00
![Pekka Paalanen](/assets/img/avatar_default.png)
This allows Gitlab to show a detailed test report in a human friendly manner on a merge request page. The junit output depends on Meson 0.55, but Meson in CI is bumped to the latest release on Feb 15th. It is beneficial to use the newest possible Meson in CI even if we do not require it, so that we benefit from fixes, e.g. new warnings about accidentally using more recent Meson features than our minimum Meson version supports. Meson 0.57 is required for proper test names in the Gitlab report after switching the tests to TAP. See: https://github.com/mesonbuild/meson/issues/8316 Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
151 lines
3.3 KiB
YAML
151 lines
3.3 KiB
YAML
# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0:
|
|
|
|
variables:
|
|
FDO_UPSTREAM_REPO: wayland/weston
|
|
|
|
|
|
include:
|
|
- project: 'freedesktop/ci-templates'
|
|
ref: 59de540b620c45739871d1a073d76d5521989d11
|
|
file: '/templates/debian.yml'
|
|
|
|
|
|
stages:
|
|
- container_prep
|
|
- build
|
|
- pages
|
|
|
|
|
|
.debian:
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: buster
|
|
FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/debian-install.sh'
|
|
FDO_DISTRIBUTION_TAG: '2021-02-15.0'
|
|
|
|
|
|
container_prep:
|
|
extends:
|
|
- .debian
|
|
- .fdo.container-build@debian
|
|
stage: container_prep
|
|
|
|
|
|
.build-native:
|
|
extends:
|
|
- .debian
|
|
- .fdo.distribution-image@debian
|
|
stage: build
|
|
before_script:
|
|
- git clone --depth=1 https://gitlab.freedesktop.org/wayland/wayland-protocols
|
|
- export WAYLAND_PROTOCOLS_DIR="$(pwd)/prefix-wayland-protocols"
|
|
- export PKG_CONFIG_PATH="$WAYLAND_PROTOCOLS_DIR/share/pkgconfig:$PKG_CONFIG_PATH"
|
|
- export MAKEFLAGS="-j4"
|
|
- cd wayland-protocols
|
|
- git show -s HEAD
|
|
- mkdir build
|
|
- cd build
|
|
- ../autogen.sh --prefix="$WAYLAND_PROTOCOLS_DIR"
|
|
- make install
|
|
- cd ../../
|
|
- export XDG_RUNTIME_DIR="$(mktemp -p $(pwd) -d xdg-runtime-XXXXXX)"
|
|
- export BUILD_ID="weston-$CI_JOB_NAME"
|
|
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
|
|
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
|
|
- export TESTS_RES_PATH="$BUILDDIR/tests-res.txt"
|
|
- mkdir "$BUILDDIR" "$PREFIX"
|
|
|
|
.build-native-meson:
|
|
extends: .build-native
|
|
tags:
|
|
- kvm
|
|
script:
|
|
- export PATH=~/.local/bin:$PATH
|
|
- cd "$BUILDDIR"
|
|
- meson --prefix="$PREFIX" ${MESON_OPTIONS} ..
|
|
- ninja -k0
|
|
- ninja install
|
|
- virtme-run --rw --pwd --kimg /weston-virtme/bzImage --script-dir ../.gitlab-ci/virtme-scripts
|
|
- TEST_RES=$(cat $TESTS_RES_PATH)
|
|
- rm $TESTS_RES_PATH
|
|
- ninja clean
|
|
- cp -R /weston-virtme ./
|
|
- rm weston-virtme/bzImage
|
|
- exit $TEST_RES
|
|
artifacts:
|
|
name: weston-$CI_COMMIT_SHA
|
|
when: always
|
|
paths:
|
|
- build-*/*.png
|
|
- build-*/meson-logs
|
|
- build-*/weston-virtme
|
|
- prefix-*
|
|
reports:
|
|
junit: build-*/meson-logs/testlog.junit.xml
|
|
|
|
.build-native-meson-no-test:
|
|
extends: .build-native
|
|
tags:
|
|
- kvm
|
|
script:
|
|
- export PATH=~/.local/bin:$PATH
|
|
- cd "$BUILDDIR"
|
|
- meson --prefix="$PREFIX" ${MESON_OPTIONS} ..
|
|
- ninja -k0
|
|
- ninja install
|
|
- ninja clean
|
|
artifacts:
|
|
name: weston-$CI_COMMIT_SHA
|
|
when: always
|
|
paths:
|
|
- build-*/meson-logs
|
|
- prefix-*
|
|
|
|
build-native-meson-default-options:
|
|
variables:
|
|
MESON_OPTIONS: >
|
|
-Dwerror=true
|
|
extends: .build-native-meson
|
|
|
|
build-docs:
|
|
variables:
|
|
MESON_OPTIONS: >
|
|
-Dwerror=true
|
|
-Ddoc=true
|
|
extends: .build-native-meson-no-test
|
|
|
|
build-native-meson-no-gl-renderer:
|
|
variables:
|
|
MESON_OPTIONS: >
|
|
-Dsimple-clients=damage,im,shm,touch,dmabuf-v4l
|
|
-Drenderer-gl=false
|
|
-Dremoting=false
|
|
-Dpipewire=false
|
|
-Dwerror=true
|
|
extends: .build-native-meson
|
|
|
|
preview-docs:
|
|
stage: pages
|
|
script:
|
|
- mv prefix-weston-build-docs/share/doc/weston Documentation
|
|
- rm -rf build-* prefix-*
|
|
dependencies:
|
|
- build-docs
|
|
artifacts:
|
|
expose_as: 'Documentation preview'
|
|
paths:
|
|
- Documentation/
|
|
|
|
pages:
|
|
stage: pages
|
|
dependencies:
|
|
- build-docs
|
|
script:
|
|
- export PREFIX=$(pwd)/prefix-weston-build-docs
|
|
- mkdir public
|
|
- cp -R $PREFIX/share/doc/weston/* public/
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
only:
|
|
- master
|