]> git.ipfire.org Git - thirdparty/systemd.git/blob - .github/workflows/mkosi.yml
update TODO
[thirdparty/systemd.git] / .github / workflows / mkosi.yml
1 ---
2 # vi: ts=2 sw=2 et:
3 # SPDX-License-Identifier: LGPL-2.1-or-later
4 # Simple boot tests that build and boot the mkosi images generated by the mkosi config files in mkosi.conf.d/.
5 name: mkosi
6
7 on:
8 push:
9 branches:
10 - main
11 - v[0-9]+-stable
12 paths:
13 - '**'
14 - '!README*'
15 - '!LICENSE*'
16 - '!LICENSES/**'
17 - '!TODO'
18 - '!docs/**'
19 - '!man/**'
20 - '!catalog/**'
21 - '!shell-completion/**'
22 - '!po/**'
23 - '!.**'
24 - '.github/**'
25
26 pull_request:
27 branches:
28 - main
29 - v[0-9]+-stable
30 paths:
31 - '**'
32 - '!README*'
33 - '!LICENSE*'
34 - '!LICENSES/**'
35 - '!TODO'
36 - '!docs/**'
37 - '!man/**'
38 - '!catalog/**'
39 - '!shell-completion/**'
40 - '!po/**'
41 - '!.**'
42 - '.github/**'
43
44 permissions:
45 contents: read
46
47 jobs:
48 ci:
49 runs-on: ubuntu-22.04
50 concurrency:
51 group: ${{ github.workflow }}-${{ matrix.distro }}-${{ matrix.release }}-${{ github.ref }}
52 cancel-in-progress: true
53 strategy:
54 fail-fast: false
55 matrix:
56 include:
57 - distro: arch
58 release: rolling
59 - distro: debian
60 release: testing
61 - distro: ubuntu
62 release: jammy
63 - distro: fedora
64 release: "37"
65 - distro: fedora
66 release: rawhide
67 - distro: opensuse
68 release: tumbleweed
69 - distro: centos
70 release: "9"
71 - distro: centos
72 release: "8"
73
74 steps:
75 - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
76 - uses: systemd/mkosi@af1fe54805c84bb09e80bb585399121946fec701
77
78 - name: Configure
79 run: |
80 tee mkosi.conf <<- EOF
81 [Distribution]
82 Distribution=${{ matrix.distro }}
83 Release=${{ matrix.release }}
84 SecureBoot=yes
85
86 [Content]
87 Environment=CI_BUILD=1
88 DEFAULT_TIMEOUT_SEC=90
89
90 [Output]
91 KernelCommandLineExtra=systemd.unit=mkosi-check-and-shutdown.service
92 systemd.journald.max_level_console=debug
93 # udev's debug log output is very verbose, so up it to info in CI.
94 udev.log_level=info
95 EOF
96
97 - name: Generate secure boot key
98 run: mkosi genkey
99
100 - name: Build ${{ matrix.distro }}
101 run: mkosi
102
103 - name: Show ${{ matrix.distro }} image summary
104 run: mkosi summary
105
106 - name: Boot ${{ matrix.distro }} systemd-nspawn
107 run: sudo mkosi boot
108
109 - name: Check ${{ matrix.distro }} systemd-nspawn
110 run: sudo mkosi shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }"
111
112 - name: Boot ${{ matrix.distro }} QEMU
113 run: timeout -k 30 10m mkosi qemu
114
115 - name: Check ${{ matrix.distro }} QEMU
116 run: sudo mkosi shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }"