mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-05-02 03:48:02 +02:00
Using ninja spawns a very high number of concurrent tests (even with
the option '-j').
The CI runs two Xservers, one Xephyr instance running inside an Xvfb
instance.
As a result, running the tests may exhaust the CI server resources and
eventually the CI fails.
meson, however, doesn't seem to suffer the same issue, and the number of
Xserver spawned for the CI tests remains limited.
The master branch already uses meson (after commit ce2f24c51 which uses a
meson-build script instead).
Switch to meson instead of ninja for running the tests.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2040>
91 lines
2.9 KiB
YAML
91 lines
2.9 KiB
YAML
# FDO_DISTRIBUTION_TAG is the tag of the docker image used for the build jobs.
|
|
# If the image doesn't exist yet, the docker-image stage generates it.
|
|
#
|
|
# In order to generate a new image, one should generally change the tag.
|
|
# While removing the image from the registry would also work, that's not
|
|
# recommended except for ephemeral images during development: Replacing an
|
|
# image after a significant amount of time might pull in newer versions of
|
|
# gcc/clang or other packages, which might break the build with older commits
|
|
# using the same tag.
|
|
variables:
|
|
FDO_UPSTREAM_REPO: xorg/xserver
|
|
FDO_DISTRIBUTION_VERSION: buster-slim
|
|
FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/debian-install.sh'
|
|
FDO_DISTRIBUTION_TAG: "2021-07-09"
|
|
|
|
include:
|
|
- project: 'freedesktop/ci-templates'
|
|
ref: 4f06663cd1507136a0f8440925a2521098adb298
|
|
file: '/templates/debian.yml'
|
|
|
|
stages:
|
|
- docker-image
|
|
- build-and-test
|
|
|
|
.ci-run-policy:
|
|
# Retry jobs after runner system failures
|
|
retry:
|
|
max: 2
|
|
when:
|
|
- runner_system_failure
|
|
# Cancel CI run if a newer commit is pushed to the same branch
|
|
interruptible: true
|
|
|
|
debian-buster:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .ci-run-policy
|
|
stage: docker-image
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
|
|
.common-build-and-test:
|
|
extends:
|
|
- .fdo.distribution-image@debian
|
|
- .ci-run-policy
|
|
stage: build-and-test
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- build/test/piglit-results/
|
|
variables:
|
|
CCACHE_COMPILERCHECK: content
|
|
CCACHE_DIR: /cache/xserver/cache
|
|
LC_ALL: C.UTF-8
|
|
before_script:
|
|
- export CCACHE_BASEDIR="$PWD"
|
|
- export PATH="/usr/lib/ccache:$PATH"
|
|
- ccache --show-stats
|
|
after_script:
|
|
- ccache --show-stats
|
|
|
|
autotools:
|
|
extends: .common-build-and-test
|
|
script:
|
|
- mkdir build/
|
|
- cd build/
|
|
- ../autogen.sh --prefix=/usr CFLAGS="-fno-common"
|
|
- make -j${FDO_CI_CONCURRENT:-4} distcheck
|
|
- PIGLIT_DIR=/root/piglit XTEST_DIR=/root/xts make -j${FDO_CI_CONCURRENT:-4} check
|
|
- cd ..
|
|
- .gitlab-ci/manpages-check
|
|
|
|
meson:
|
|
extends: .common-build-and-test
|
|
script:
|
|
- meson -Dc_args="-fno-common" -Dprefix=/usr -Dxephyr=true -Dwerror=true $MESON_EXTRA_OPTIONS build/
|
|
- ninja -j${FDO_CI_CONCURRENT:-4} -C build/ dist
|
|
- PIGLIT_DIR=/root/piglit XTEST_DIR=/root/xts meson test --num-processes ${FDO_CI_CONCURRENT:-4} -C build/
|
|
- .gitlab-ci/manpages-check
|
|
|
|
meson-noglamor:
|
|
extends: meson
|
|
variables:
|
|
MESON_EXTRA_OPTIONS: >
|
|
-Dglamor=false
|
|
|
|
mingw-cross-build:
|
|
extends: .common-build-and-test
|
|
script:
|
|
- meson --cross-file=.gitlab-ci/cross-i686-w64-mingw32.txt -Dglx=false -Dsecure-rpc=false -Dlisten_tcp=true build/
|
|
- ninja -j${FDO_CI_CONCURRENT:-4} -C build/ install
|