Skip to content

Commit 3849107

Browse files
ci: add CentOS Stream 9 and Fedora build jobs
1 parent 2cafe28 commit 3849107

1 file changed

Lines changed: 144 additions & 0 deletions

File tree

.github/workflows/build-platforms.yml

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ on:
44
push:
55
pull_request:
66
workflow_dispatch:
7+
schedule:
8+
- cron: '0 7 * * 1'
79

810
permissions:
911
contents: read
@@ -121,6 +123,148 @@ jobs:
121123
name: build-logs-alpine-musl
122124
path: build-alpine/meson-logs/
123125

126+
centos-stream9:
127+
name: centos-stream9
128+
runs-on: ubuntu-24.04
129+
timeout-minutes: 15
130+
steps:
131+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
132+
133+
- name: Build in CentOS Stream 9 container
134+
run: |
135+
docker run --rm -v "$PWD:/work" -w /work quay.io/centos/centos:stream9@sha256:a0e8c66bbc94c61b4be618c8b38d24406156d3233545a16bc71f9106131182f0 sh -euxc '
136+
dnf install -y gcc meson ninja-build pkg-config glib2-devel fuse3-devel
137+
meson setup build-centos -Dwerror=true
138+
ninja -C build-centos
139+
'
140+
141+
- name: Upload build logs
142+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
143+
if: failure()
144+
with:
145+
name: build-logs-centos-stream9
146+
path: build-centos/meson-logs/
147+
148+
centos-stream9-test:
149+
name: centos-stream9 (runtime)
150+
runs-on: ubuntu-24.04
151+
timeout-minutes: 25
152+
continue-on-error: true
153+
steps:
154+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
155+
156+
- name: Build and test in CentOS Stream 9 container
157+
run: |
158+
docker run --rm --privileged --device /dev/fuse \
159+
-v "$PWD:/work" -w /work \
160+
quay.io/centos/centos:stream9@sha256:a0e8c66bbc94c61b4be618c8b38d24406156d3233545a16bc71f9106131182f0 sh -euxc '
161+
dnf install -y gcc meson ninja-build pkg-config glib2-devel fuse3-devel \
162+
fuse3 openssh-server openssh-clients python3-pip
163+
pip3 install pytest pytest-timeout
164+
meson setup build-centos-test
165+
ninja -C build-centos-test
166+
mkdir -p ~/.ssh
167+
chmod 700 ~/.ssh
168+
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N ""
169+
cat ~/.ssh/id_ed25519.pub > ~/.ssh/authorized_keys
170+
chmod 600 ~/.ssh/authorized_keys
171+
ssh-keygen -A
172+
/usr/sbin/sshd
173+
ssh -o StrictHostKeyChecking=no -o BatchMode=yes localhost true
174+
cd build-centos-test
175+
python3 -m pytest test/ --timeout=300 --maxfail=99 --junitxml=test-results.xml
176+
'
177+
178+
- name: Upload test results
179+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
180+
if: always()
181+
with:
182+
name: test-results-centos-stream9
183+
path: build-centos-test/test-results.xml
184+
185+
fedora-latest:
186+
name: fedora-latest
187+
runs-on: ubuntu-24.04
188+
timeout-minutes: 15
189+
steps:
190+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
191+
192+
- name: Build in Fedora container
193+
run: |
194+
docker run --rm -v "$PWD:/work" -w /work fedora:latest@sha256:498c452f32a739b61f0ef215bce9924ebc4866cbe44710f58157d77723b7a6d2 sh -euxc '
195+
dnf install -y gcc meson ninja-build pkg-config glib2-devel fuse3-devel
196+
meson setup build-fedora -Dwerror=true
197+
ninja -C build-fedora
198+
'
199+
200+
- name: Upload build logs
201+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
202+
if: failure()
203+
with:
204+
name: build-logs-fedora-latest
205+
path: build-fedora/meson-logs/
206+
207+
fedora-latest-test:
208+
name: fedora-latest (runtime)
209+
runs-on: ubuntu-24.04
210+
timeout-minutes: 25
211+
continue-on-error: true
212+
steps:
213+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
214+
215+
- name: Build and test in Fedora container
216+
run: |
217+
docker run --rm --privileged --device /dev/fuse \
218+
-v "$PWD:/work" -w /work \
219+
fedora:latest@sha256:498c452f32a739b61f0ef215bce9924ebc4866cbe44710f58157d77723b7a6d2 sh -euxc '
220+
dnf install -y gcc meson ninja-build pkg-config glib2-devel fuse3-devel \
221+
fuse3 openssh-server openssh-clients python3-pip python3-pytest
222+
pip3 install pytest-timeout
223+
meson setup build-fedora-test
224+
ninja -C build-fedora-test
225+
mkdir -p ~/.ssh
226+
chmod 700 ~/.ssh
227+
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N ""
228+
cat ~/.ssh/id_ed25519.pub > ~/.ssh/authorized_keys
229+
chmod 600 ~/.ssh/authorized_keys
230+
ssh-keygen -A
231+
/usr/sbin/sshd
232+
ssh -o StrictHostKeyChecking=no -o BatchMode=yes localhost true
233+
cd build-fedora-test
234+
python3 -m pytest test/ --timeout=300 --maxfail=99 --junitxml=test-results.xml
235+
'
236+
237+
- name: Upload test results
238+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
239+
if: always()
240+
with:
241+
name: test-results-fedora-latest
242+
path: build-fedora-test/test-results.xml
243+
244+
fedora-rawhide:
245+
name: fedora-rawhide
246+
runs-on: ubuntu-24.04
247+
timeout-minutes: 20
248+
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
249+
continue-on-error: true
250+
steps:
251+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
252+
253+
- name: Build in Fedora Rawhide container
254+
run: |
255+
docker run --rm -v "$PWD:/work" -w /work registry.fedoraproject.org/fedora:rawhide sh -euxc '
256+
dnf install -y gcc meson ninja-build pkg-config glib2-devel fuse3-devel
257+
meson setup build-rawhide -Dwerror=true
258+
ninja -C build-rawhide
259+
'
260+
261+
- name: Upload build logs
262+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
263+
if: failure()
264+
with:
265+
name: build-logs-fedora-rawhide
266+
path: build-rawhide/meson-logs/
267+
124268
freebsd:
125269
name: freebsd-14
126270
runs-on: ubuntu-24.04

0 commit comments

Comments
 (0)