strategy:
fail-fast: false
matrix:
- distro:
- - arch
- - debian
- - ubuntu
- - fedora
- - opensuse
+ include:
+ - distro: arch
+ release: rolling
+ - distro: debian
+ release: testing
+ - distro: ubuntu
+ release: focal
+ - distro: fedora
+ release: "35"
+ - distro: opensuse
+ release: tumbleweed
+ - distro: centos_epel
+ release: 8-stream
+ # TODO: Enable once https://github.com/systemd/mkosi/pull/915#issuecomment-1049035316 is fixed.
+ # - distro: centos_epel
+ # release: 9-stream
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
- - uses: systemd/mkosi@30288805db1a953ea31045933adb93194f91e3da
+ - uses: systemd/mkosi@0dd39c20a4b3a2fab6efdc54da92bffad7c7b7ca
- name: Install
run: sudo apt-get update && sudo apt-get install --no-install-recommends python3-pexpect python3-jinja2
- name: Configure
- run: echo -e "[Distribution]\nDistribution=${{ matrix.distro }}\n" >mkosi.default
+ run: |
+ tee mkosi.default <<- EOF
+ [Distribution]
+ Distribution=${{ matrix.distro }}
+ Release=${{ matrix.release }}
+
+ [Content]
+ Environment=CI_BUILD=1
+
+ [Output]
+ KernelCommandLine=${{ env.KERNEL_CMDLINE }}
+ EOF
- name: Build ${{ matrix.distro }}
- run: ./.github/workflows/run_mkosi.sh --build-environment=CI_BUILD=1 --kernel-command-line "${{ env.KERNEL_CMDLINE }}" build
+ run: ./.github/workflows/run_mkosi.sh build
- name: Show ${{ matrix.distro }} image summary
run: ./.github/workflows/run_mkosi.sh summary
- name: Check ${{ matrix.distro }} systemd-nspawn
run: ./.github/workflows/run_mkosi.sh shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }"
+ # TODO: Remove CentOS exclusion once Ubuntu 22.04 is available in GA.
+ # See https://github.com/systemd/systemd/pull/22417 and https://github.com/systemd/mkosi/pull/907 for
+ # more information.
+
- name: Boot ${{ matrix.distro }} QEMU
+ if: ${{ matrix.distro != 'centos_epel' }}
run: ./.github/workflows/run_mkosi.sh qemu
- name: Check ${{ matrix.distro }} QEMU
+ if: ${{ matrix.distro != 'centos_epel' }}
run: ./.github/workflows/run_mkosi.sh shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }"
--- /dev/null
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
+# Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
+
+[Distribution]
+Distribution=centos_epel
+
+[Output]
+Format=gpt_xfs
+HostonlyInitrd=no
+
+[Packages]
+BuildPackages=
+ diffutils
+ docbook-style-xsl
+ findutils
+ gcc
+ gettext
+ git
+ glibc-minimal-langpack
+ gnu-efi
+ gnu-efi-devel
+ gperf
+ lz4
+ meson
+ ninja-build
+ pam-devel
+ # CentOS Stream 8 libgcrypt-devel doesn't ship a pkg-config file.
+ libgcrypt-devel
+ pkgconfig
+ pkgconfig(audit)
+ pkgconfig(blkid)
+ pkgconfig(bzip2)
+ pkgconfig(dbus-1)
+ pkgconfig(fdisk)
+ pkgconfig(gnutls)
+ pkgconfig(libacl)
+ pkgconfig(libcap)
+ pkgconfig(libcryptsetup)
+ pkgconfig(libcurl)
+ pkgconfig(libdw)
+ pkgconfig(libidn2)
+ pkgconfig(libkmod)
+ pkgconfig(liblz4)
+ pkgconfig(liblzma)
+ pkgconfig(libmicrohttpd)
+ pkgconfig(libpcre2-8)
+ pkgconfig(libqrencode)
+ pkgconfig(libseccomp)
+ pkgconfig(libselinux)
+ pkgconfig(libzstd)
+ pkgconfig(mount)
+ pkgconfig(openssl)
+ pkgconfig(p11-kit-1)
+ pkgconfig(pwquality)
+ pkgconfig(tss2-esys)
+ pkgconfig(tss2-mu)
+ pkgconfig(tss2-rc)
+ pkgconfig(valgrind)
+ pkgconfig(xkbcommon)
+ python3dist(jinja2)
+ python3dist(lxml)
+ rpm
+ tree
+ zstd
+ /usr/bin/xsltproc
+
+Packages=
+ gdb
+ nano
+ # procps-ng provides a set of useful utilities (ps, free, etc)
+ procps-ng
+ strace
+ tpm2-tss
+ less
+ netcat
+ e2fsprogs
+ # Required to run systemd-networkd-tests.py
+ python3
+ iproute
+ iproute-tc
+ dnsmasq
+ wireguard-tools
+ dhcp-server
+ kernel-modules-extra