| --- |
| # 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.default.d/. |
| name: mkosi |
| |
| on: |
| push: |
| branches: |
| - main |
| - v[0-9]+-stable |
| pull_request: |
| branches: |
| - main |
| - v[0-9]+-stable |
| |
| permissions: |
| contents: read |
| |
| env: |
| # Enable debug logging in systemd, but keep udev's log level to info, |
| # since it's _very_ verbose in the QEMU task |
| KERNEL_CMDLINE: "systemd.unit=mkosi-check-and-shutdown.service !quiet systemd.log_level=debug systemd.log_target=console udev.log_level=info systemd.default_standard_output=journal+console" |
| |
| jobs: |
| ci: |
| runs-on: ubuntu-20.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: focal |
| - distro: fedora |
| release: "35" |
| - distro: opensuse |
| release: tumbleweed |
| - distro: centos_epel |
| release: 8-stream |
| - distro: centos_epel |
| release: 9-stream |
| |
| steps: |
| - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 |
| - 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: | |
| 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 |
| |
| - name: Show ${{ matrix.distro }} image summary |
| run: ./.github/workflows/run_mkosi.sh summary |
| |
| - name: Boot ${{ matrix.distro }} systemd-nspawn |
| run: ./.github/workflows/run_mkosi.sh boot ${{ env.KERNEL_CMDLINE }} |
| |
| - 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; }" |