blob: bfee17e02ec6a5afec42a4af224eb505c6ffe181 (
plain)
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
137
|
# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0:
include:
# Arch container builder template
- project: 'freedesktop/ci-templates'
ref: 6f86b8bcb0cd5168c32779c4fea9a893c4a0c046
file:
- '/templates/arch.yml'
# global variables to be used by most/all jobs.
variables:
FDO_UPSTREAM_REPO: 'xorg/proto/xorgproto'
# Changing the tag will rebuild the container images. The value is just a
# string, but we use the date for human benefits.
FDO_DISTRIBUTION_TAG: '2021-04-30.0'
stages:
- prep
- check
- build
- test
container-prep:
extends:
- .fdo.container-build@arch
stage: prep
variables:
GIT_STRATEGY: none
# minimal set of packages required to build and install
BASE_PACKAGES: 'meson ninja gcc autoconf automake make xorg-util-macros pkgconf'
# extra packages we need for various tests
EXTRA_PACKAGES: 'git libevdev python python-libevdev python-black jq'
FDO_DISTRIBUTION_PACKAGES: $BASE_PACKAGES $EXTRA_PACKAGES
meson:
extends:
- .fdo.distribution-image@arch
stage: build
parallel:
matrix:
- MESON_OPTIONS: ['', '-Dlegacy=true']
script:
- mkdir -p ../_inst
- meson builddir --prefix="$PWD/../_inst" $MESON_OPTIONS
- meson configure builddir
- ninja -C builddir test
- ninja -C builddir install
autotools:
extends:
- .fdo.distribution-image@arch
stage: build
parallel:
matrix:
- CONFIGURE_OPTIONS: ['', '--enable-legacy']
script:
- mkdir -p ../_inst _build
- autoreconf -ivf
- pushd _build
- ../configure --prefix="$PWD/../_inst" $CONFIGURE_OPTIONS
- make check
- make install
- make distcheck
- mv xorgproto*.tar.gz ..
- popd
artifacts:
paths:
- xorgproto*.tar.gz
meson from tarball:
extends:
- .fdo.distribution-image@arch
stage: test
script:
- mkdir -p _tarball_build
- tar xf xorgproto-*.tar.gz -C _tarball_build
- pushd _tarball_build/xorgproto-*
- meson builddir
- meson configure builddir
- ninja -C builddir test
needs:
- autotools
variables:
GIT_STRATEGY: none
compare meson and autotools:
extends:
- .fdo.distribution-image@arch
stage: test
script:
- mkdir -p $PWD/_meson_inst
- mkdir -p $PWD/_autotools_inst
# the prefix ends up in the pkgconfig files, so we use a symlink
# to use the same --prefix for meson and autotools
- ln -sf $PWD/_meson_inst $PWD/_inst
- meson builddir
- meson configure builddir --prefix=$PWD/_inst
- ninja -C builddir install
- rm $PWD/_inst
- ln -sf $PWD/_autotools_inst $PWD/_inst
- autoreconf -ivf
# meson doesn't build the specs yet
- ./configure --prefix=$PWD/_inst --disable-specs
- make && make install
- diff --brief --recursive $PWD/_meson_inst $PWD/_autotools_inst
check evdev keysyms:
extends:
- .fdo.distribution-image@arch
stage: test
script:
- ./scripts/keysym-generator.py --header=include/X11/XF86keysym.h verify
check formatting:
extends:
- .fdo.distribution-image@arch
stage: check
script:
- black scripts/keysym-generator.py
- git diff --exit-code || (echo "Please run Black against the Python script" && false)
only:
changes:
- scripts/keysym-generator.py
check versions are in sync:
extends:
- .fdo.distribution-image@arch
stage: test
script:
- autoreconf -ivf
- ./configure --version | head -n 1 | sed -e 's/xorgproto configure //' > autotools.version
- |
meson builddir
pushd builddir
meson introspect --projectinfo | jq -r '.version' > ../meson.version
popd
- diff -u autotools.version meson.version || (echo "ERROR - autotools and meson versions not in sync" && false)
|