Skip to content

Commit 5b86832

Browse files
ci: add CentOS Stream 9 and Fedora build jobs
1 parent 5353d18 commit 5b86832

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
@@ -124,6 +126,148 @@ jobs:
124126
name: build-logs-alpine-musl
125127
path: build-alpine/meson-logs/
126128

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

0 commit comments

Comments
 (0)