mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-20 05:50:04 +01:00
This is needed to support tearing-updates-v1 Signed-off-by: Xaver Hugl <xaver.hugl@gmail.com> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
150 lines
4 KiB
YAML
150 lines
4 KiB
YAML
# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml:
|
|
#
|
|
# This CI uses the freedesktop.org ci-templates.
|
|
# Please see the ci-templates documentation for details:
|
|
# https://freedesktop.pages.freedesktop.org/ci-templates/
|
|
|
|
.templates_sha: &template_sha c5626190ec14b475271288dda7a7dae8dbe0cd76 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
|
|
|
# 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: bullseye-slim
|
|
FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/debian-install.sh'
|
|
FDO_DISTRIBUTION_TAG: "2023-06-13-new-xorg-proto"
|
|
|
|
include:
|
|
- project: 'freedesktop/ci-templates'
|
|
ref: *template_sha
|
|
file: '/templates/debian.yml'
|
|
- project: 'freedesktop/ci-templates'
|
|
ref: *template_sha
|
|
file: '/templates/ci-fairy.yml'
|
|
- template: Security/SAST.gitlab-ci.yml
|
|
|
|
stages:
|
|
- docker-image
|
|
- build-and-test
|
|
- 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-bullseye:
|
|
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: always
|
|
paths:
|
|
- build/meson-logs/
|
|
- 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
|
|
|
|
meson:
|
|
extends: .common-build-and-test
|
|
script:
|
|
- .gitlab-ci/build-and-test.sh
|
|
- .gitlab-ci/manpages-check
|
|
|
|
meson-noglamor:
|
|
extends: meson
|
|
variables:
|
|
MESON_EXTRA_OPTIONS: >
|
|
-Dglamor=false
|
|
|
|
meson-nolibdecor:
|
|
extends: meson
|
|
variables:
|
|
MESON_EXTRA_OPTIONS: >
|
|
-Dlibdecor=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
|
|
|
|
meson-dist:
|
|
extends: .common-build-and-test
|
|
artifacts:
|
|
when: always
|
|
paths:
|
|
- build/meson-logs/
|
|
- build/xserver-*/build/meson-logs/
|
|
script:
|
|
- .gitlab-ci/dist.sh
|
|
|
|
#
|
|
# Verify that commit messages are as expected
|
|
#
|
|
check-commits:
|
|
extends:
|
|
- .fdo.ci-fairy
|
|
stage: test
|
|
script:
|
|
- ci-fairy check-commits --junit-xml=results.xml
|
|
except:
|
|
- master@xorg/xserver
|
|
variables:
|
|
GIT_DEPTH: 100
|
|
artifacts:
|
|
reports:
|
|
junit: results.xml
|
|
allow_failure: true
|
|
|
|
#
|
|
# Verify that the merge request has the allow-collaboration checkbox ticked
|
|
#
|
|
check-merge-request:
|
|
extends:
|
|
- .fdo.ci-fairy
|
|
stage: test
|
|
script:
|
|
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
|
|
artifacts:
|
|
when: on_failure
|
|
reports:
|
|
junit: results.xml
|
|
allow_failure: true
|
|
|
|
#
|
|
# Workflow rules needed due to:
|
|
# https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/438
|
|
#
|
|
workflow:
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
- if: $CI_PIPELINE_SOURCE == 'push'
|