mirror of
https://github.com/systemd/systemd.git
synced 2025-02-28 05:57:33 +03:00
We modify all our scripts to execute in the image instead of on the hosts. In the future we can adapt them to run on the host.
143 lines
4.2 KiB
YAML
143 lines
4.2 KiB
YAML
---
|
|
# vi: ts=2 sw=2 et:
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
# Simple boot tests that build and boot the mkosi images generated by the mkosi config files in mkosi.conf.d/.
|
|
name: mkosi
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- v[0-9]+-stable
|
|
paths:
|
|
- '**'
|
|
- '!README*'
|
|
- '!LICENSE*'
|
|
- '!LICENSES/**'
|
|
- '!TODO'
|
|
- '!docs/**'
|
|
- '!man/**'
|
|
- '!catalog/**'
|
|
- '!shell-completion/**'
|
|
- '!po/**'
|
|
- '!.**'
|
|
- '.github/**'
|
|
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
- v[0-9]+-stable
|
|
paths:
|
|
- '**'
|
|
- '!README*'
|
|
- '!LICENSE*'
|
|
- '!LICENSES/**'
|
|
- '!TODO'
|
|
- '!docs/**'
|
|
- '!man/**'
|
|
- '!catalog/**'
|
|
- '!shell-completion/**'
|
|
- '!po/**'
|
|
- '!.**'
|
|
- '.github/**'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
ci:
|
|
runs-on: ubuntu-22.04
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ matrix.distro }}-${{ matrix.release }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- distro: arch
|
|
release: rolling
|
|
- distro: debian
|
|
release: testing
|
|
- distro: ubuntu
|
|
release: jammy
|
|
- distro: fedora
|
|
release: "38"
|
|
- distro: fedora
|
|
release: rawhide
|
|
- distro: opensuse
|
|
release: tumbleweed
|
|
- distro: centos
|
|
release: "9"
|
|
- distro: centos
|
|
release: "8"
|
|
|
|
env:
|
|
SYSTEMD_LOG_LEVEL: debug
|
|
|
|
steps:
|
|
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
|
|
- uses: systemd/mkosi@1c09cb53e5f3fdb35919d525e8c3e6132344ae98
|
|
|
|
- name: Configure
|
|
run: |
|
|
tee mkosi.conf <<- EOF
|
|
[Distribution]
|
|
Distribution=${{ matrix.distro }}
|
|
Release=${{ matrix.release }}
|
|
|
|
[Content]
|
|
Environment=CI_BUILD=1
|
|
SLOW_TESTS=true
|
|
|
|
[Output]
|
|
KernelCommandLineExtra=systemd.unit=mkosi-check-and-shutdown.service
|
|
systemd.journald.max_level_console=debug
|
|
# udev's debug log output is very verbose, so up it to info in CI.
|
|
udev.log_level=info
|
|
# Root device can take a long time to appear, so let's bump the timeout.
|
|
systemd.default_device_timeout_sec=180
|
|
|
|
[Host]
|
|
ExtraSearchPaths=!*
|
|
QemuVsock=yes
|
|
Ephemeral=yes
|
|
EOF
|
|
|
|
# For erofs, we have to install linux-modules-extra-azure, but that doesn't match the running kernel
|
|
# version, so we can't load the erofs module. squashfs is a builtin module so we use that instead.
|
|
|
|
mkdir -p mkosi.presets/20-final/mkosi.repart/10-usr.conf.d
|
|
tee mkosi.presets/20-final/mkosi.repart/10-usr.conf.d/squashfs.conf <<- EOF
|
|
[Partition]
|
|
Format=squashfs
|
|
EOF
|
|
|
|
# The emergency shell is not useful in the CI, as it just blocks for a long time before the job
|
|
# eventually times out. Override it to just shutdown immediately.
|
|
mkdir -p mkosi.presets/10-initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/
|
|
mkdir -p mkosi.presets/20-final/mkosi.extra/usr/lib/systemd/system/emergency.service.d/
|
|
tee mkosi.presets/10-initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf <<- EOF
|
|
[Unit]
|
|
FailureAction=exit
|
|
[Service]
|
|
ExecStartPre=
|
|
ExecStart=
|
|
ExecStart=false
|
|
EOF
|
|
cp mkosi.presets/10-initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf mkosi.presets/20-final/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf
|
|
|
|
- name: Generate secure boot key
|
|
run: mkosi --debug genkey
|
|
|
|
- name: Show ${{ matrix.distro }} image summary
|
|
run: mkosi summary
|
|
|
|
- name: Build ${{ matrix.distro }}
|
|
run: mkosi --debug
|
|
|
|
- name: Boot ${{ matrix.distro }} systemd-nspawn
|
|
run: test "$(sudo mkosi --debug boot 1>&2; echo $?)" -eq 123
|
|
|
|
- name: Boot ${{ matrix.distro }} QEMU
|
|
run: timeout -k 30 10m test "$(mkosi --debug qemu 1>&2; echo $?)" -eq 123
|