1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=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
# or copies it from upstream (this is all handled by the templates).
#
# 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.
#
variables:
FDO_DISTRIBUTION_VERSION: bookworm-slim
FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/debian-install.sh'
FDO_DISTRIBUTION_PACKAGES: 'ca-certificates'
FDO_DISTRIBUTION_TAG: "2024-02-23.2"
FDO_UPSTREAM_REPO: xorg/driver/xf86-video-ati
#
# 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 9568e38927f9e9c48d4f586f84a071c3a4bdcd39 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
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
- test
#
# 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@$FDO_UPSTREAM_REPO
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
#
# Build a container with the given tag and the packages pre-installed.
# This only happens if/when the tag changes, otherwise the existing image is
# re-used.
#
container-build:
extends:
- .fdo.container-build@debian
stage: docker-image
variables:
GIT_STRATEGY: none
# The default build instructions
.default_build:
extends:
- .fdo.distribution-image@debian
stage: build
script:
- ./autogen.sh
- make -j${FDO_CI_CONCURRENT:-4} check V=1
variables:
CFLAGS: "-pipe -g -O2 -Werror"
ACLOCAL_PATH: /usr/local/xserver-$XSERVER_VERSION/share/aclocal
PKG_CONFIG_PATH: /usr/local/xserver-$XSERVER_VERSION/lib/pkgconfig
build-distcheck:
extends:
- .default_build
script:
- ./autogen.sh
- make -j${FDO_CI_CONCURRENT:-4} check V=1
- make install V=1
- make -j${FDO_CI_CONCURRENT:-4} distcheck
variables:
XSERVER_VERSION: "21.1"
# excludes version already checked in build-distcheck
build-gcc:
extends:
- .default_build
parallel:
matrix:
- XSERVER_VERSION: ["1.16", "1.17", "1.18", "1.19", "1.20"]
build-clang:
extends:
- .default_build
parallel:
matrix:
- XSERVER_VERSION: ["1.18", "1.19", "1.20", "21.1"]
variables:
CC: clang
build-noglamor:
extends:
- .default_build
script:
- ./autogen.sh --disable-glamor
- make -j${FDO_CI_CONCURRENT:-4} check V=1
parallel:
matrix:
- XSERVER_VERSION: ["1.13", "1.14", "1.15"]
|