summaryrefslogtreecommitdiffstats
path: root/.github/workflows/mkosi.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/mkosi.yml')
-rw-r--r--.github/workflows/mkosi.yml294
1 files changed, 147 insertions, 147 deletions
diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml
index 5842158..d76a935 100644
--- a/.github/workflows/mkosi.yml
+++ b/.github/workflows/mkosi.yml
@@ -10,36 +10,36 @@ on:
- main
- v[0-9]+-stable
paths:
- - '**'
- - '!README*'
- - '!LICENSE*'
- - '!LICENSES/**'
- - '!TODO'
- - '!docs/**'
- - '!man/**'
- - '!catalog/**'
- - '!shell-completion/**'
- - '!po/**'
- - '!.**'
- - '.github/**'
+ - "**"
+ - "!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/**'
+ - "**"
+ - "!README*"
+ - "!LICENSE*"
+ - "!LICENSES/**"
+ - "!TODO"
+ - "!docs/**"
+ - "!man/**"
+ - "!catalog/**"
+ - "!shell-completion/**"
+ - "!po/**"
+ - "!.**"
+ - ".github/**"
permissions:
contents: read
@@ -104,126 +104,126 @@ jobs:
relabel: yes
steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- - uses: systemd/mkosi@4eba736412c702bbbe2c6d4a58a92fa977219249
-
- # Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space
- # immediately, we remove the files in the background. However, we first move them to a different location
- # so that nothing tries to use anything in these directories anymore while we're busy deleting them.
- - name: Free disk space
- run: |
- sudo mv /usr/local /usr/local.trash
- sudo mv /opt/hostedtoolcache /opt/hostedtoolcache.trash
- sudo systemd-run rm -rf /usr/local.trash /opt/hostedtoolcache.trash
-
- - name: Btrfs
- run: |
- truncate --size=100G btrfs.raw
- mkfs.btrfs btrfs.raw
- sudo mkdir /mnt/mkosi
- LOOP="$(sudo losetup --find --show --direct-io=on btrfs.raw)"
- sudo mount "$LOOP" /mnt/mkosi --options compress=zstd:1,user_subvol_rm_allowed,noatime,discard=async,space_cache=v2
- sudo chown "$(id -u):$(id -g)" /mnt/mkosi
- mkdir /mnt/mkosi/tmp
- echo "TMPDIR=/mnt/mkosi/tmp" >>"$GITHUB_ENV"
- ln -s /mnt/mkosi/build build
-
- - name: Configure
- run: |
- # XXX: drop after the HyperV bug that breaks secure boot KVM guests is solved
- sed -i "s/'firmware'\s*:\s*'auto'/'firmware' : 'uefi'/g" test/*/meson.build
- tee mkosi.local.conf <<EOF
- [Distribution]
- Distribution=${{ matrix.distro }}
- Release=${{ matrix.release }}
-
- [Output]
- # Build a disk image in CI as this logic is much more prone to breakage.
- Format=disk
- UseSubvolumes=yes
-
- WorkspaceDirectory=$TMPDIR
- PackageCacheDirectory=$TMPDIR/cache
-
- [Content]
- Environment=
- # Build debuginfo packages since we'll be publishing the packages as artifacts.
- WITH_DEBUG=1
- CFLAGS="${{ matrix.cflags }}"
- SANITIZERS=${{ matrix.sanitizers }}
- MESON_OPTIONS=--werror
- LLVM=${{ matrix.llvm }}
- SYSEXT=1
-
- SELinuxRelabel=${{ matrix.relabel }}
-
- [Host]
- QemuMem=4G
- EOF
-
- - name: Generate secure boot key
- run: mkosi --debug genkey
-
- - name: Show image summary
- run: mkosi summary
-
- - name: Install dependencies
- run: |
- mkosi dependencies |
- xargs -d '\n' sudo apt-get install \
- gperf \
- libblkid-dev \
- libcap-dev \
- libcryptsetup-dev \
- libcurl4-openssl-dev \
- libfdisk-dev \
- libmicrohttpd-dev \
- libmount-dev \
- libtss2-dev \
- meson
-
- - name: Configure meson
- run: |
- meson setup build \
- --buildtype=debugoptimized \
- -Dintegration-tests=true \
- -Dremote=enabled \
- -Dopenssl=enabled \
- -Dblkid=enabled \
- -Dtpm2=enabled \
- -Dlibcryptsetup=enabled \
- -Dlibcurl=enabled \
- -Drepart=enabled \
- -Dfirstboot=true \
- -Dsysusers=true \
- -Dtmpfiles=true \
- -Dhwdb=true \
- -Dvmspawn=enabled
-
- - name: Build image
- run: sudo meson compile -C build mkosi
-
- - name: Run integration tests
- run: sudo --preserve-env meson test -C build --no-rebuild --suite integration-tests --print-errorlogs --no-stdsplit --num-processes "$(($(nproc) - 1))"
-
- - name: Archive failed test journals
- uses: actions/upload-artifact@v4
- if: failure() && (github.repository == 'systemd/systemd' || github.repository == 'systemd/systemd-stable')
- with:
- name: ci-mkosi-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.distro }}-${{ matrix.release }}-failed-test-journals
- path: |
- build/test/journal/*.journal
- build/meson-logs/*
- retention-days: 7
-
- - name: Archive packages
- uses: actions/upload-artifact@v4
- if: (success() || failure()) && (github.repository == 'systemd/systemd' || github.repository == 'systemd/systemd-stable')
- with:
- name: ci-mkosi-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.distro }}-${{ matrix.release }}-packages
- path: |
- build/mkosi.output/*.rpm
- build/mkosi.output/*.deb
- build/mkosi.output/*.ddeb
- build/mkosi.output/*.pkg.tar
- retention-days: 4
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
+ - uses: systemd/mkosi@31b4e756c1484c302435653da5d3b9bdfae38518
+
+ # Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space
+ # immediately, we remove the files in the background. However, we first move them to a different location
+ # so that nothing tries to use anything in these directories anymore while we're busy deleting them.
+ - name: Free disk space
+ run: |
+ sudo mv /usr/local /usr/local.trash
+ sudo mv /opt/hostedtoolcache /opt/hostedtoolcache.trash
+ sudo systemd-run rm -rf /usr/local.trash /opt/hostedtoolcache.trash
+
+ - name: Btrfs
+ run: |
+ truncate --size=100G btrfs.raw
+ mkfs.btrfs btrfs.raw
+ sudo mkdir /mnt/mkosi
+ LOOP="$(sudo losetup --find --show --direct-io=on btrfs.raw)"
+ sudo mount "$LOOP" /mnt/mkosi --options compress=zstd:1,user_subvol_rm_allowed,noatime,discard=async,space_cache=v2
+ sudo chown "$(id -u):$(id -g)" /mnt/mkosi
+ mkdir /mnt/mkosi/tmp
+ echo "TMPDIR=/mnt/mkosi/tmp" >>"$GITHUB_ENV"
+ ln -s /mnt/mkosi/build build
+
+ - name: Configure
+ run: |
+ # XXX: drop after the HyperV bug that breaks secure boot KVM guests is solved
+ sed -i "s/'firmware'\s*:\s*'auto'/'firmware' : 'uefi'/g" test/*/meson.build
+ tee mkosi.local.conf <<EOF
+ [Distribution]
+ Distribution=${{ matrix.distro }}
+ Release=${{ matrix.release }}
+
+ [Output]
+ # Build a disk image in CI as this logic is much more prone to breakage.
+ Format=disk
+ UseSubvolumes=yes
+
+ WorkspaceDirectory=$TMPDIR
+ PackageCacheDirectory=$TMPDIR/cache
+
+ [Content]
+ Environment=
+ # Build debuginfo packages since we'll be publishing the packages as artifacts.
+ WITH_DEBUG=1
+ CFLAGS="${{ matrix.cflags }}"
+ SANITIZERS=${{ matrix.sanitizers }}
+ MESON_OPTIONS=--werror
+ LLVM=${{ matrix.llvm }}
+ SYSEXT=1
+
+ SELinuxRelabel=${{ matrix.relabel }}
+
+ [Host]
+ QemuMem=4G
+ EOF
+
+ - name: Generate secure boot key
+ run: mkosi --debug genkey
+
+ - name: Show image summary
+ run: mkosi summary
+
+ - name: Install dependencies
+ run: |
+ mkosi dependencies |
+ xargs -d '\n' sudo apt-get install \
+ gperf \
+ libblkid-dev \
+ libcap-dev \
+ libcryptsetup-dev \
+ libcurl4-openssl-dev \
+ libfdisk-dev \
+ libmicrohttpd-dev \
+ libmount-dev \
+ libtss2-dev \
+ meson
+
+ - name: Configure meson
+ run: |
+ meson setup build \
+ --buildtype=debugoptimized \
+ -Dintegration-tests=true \
+ -Dremote=enabled \
+ -Dopenssl=enabled \
+ -Dblkid=enabled \
+ -Dtpm2=enabled \
+ -Dlibcryptsetup=enabled \
+ -Dlibcurl=enabled \
+ -Drepart=enabled \
+ -Dfirstboot=true \
+ -Dsysusers=true \
+ -Dtmpfiles=true \
+ -Dhwdb=true \
+ -Dvmspawn=enabled
+
+ - name: Build image
+ run: sudo meson compile -C build mkosi
+
+ - name: Run integration tests
+ run: sudo --preserve-env meson test -C build --no-rebuild --suite integration-tests --print-errorlogs --no-stdsplit --num-processes "$(($(nproc) - 1))"
+
+ - name: Archive failed test journals
+ uses: actions/upload-artifact@v4
+ if: failure() && (github.repository == 'systemd/systemd' || github.repository == 'systemd/systemd-stable')
+ with:
+ name: ci-mkosi-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.distro }}-${{ matrix.release }}-failed-test-journals
+ path: |
+ build/test/journal/*.journal
+ build/meson-logs/*
+ retention-days: 7
+
+ - name: Archive packages
+ uses: actions/upload-artifact@v4
+ if: (success() || failure()) && (github.repository == 'systemd/systemd' || github.repository == 'systemd/systemd-stable')
+ with:
+ name: ci-mkosi-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.distro }}-${{ matrix.release }}-packages
+ path: |
+ build/mkosi.output/*.rpm
+ build/mkosi.output/*.deb
+ build/mkosi.output/*.ddeb
+ build/mkosi.output/*.pkg.tar
+ retention-days: 4