]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - .github/workflows/mkosi.yml
mkosi: Update to latest
[thirdparty/systemd.git] / .github / workflows / mkosi.yml
index 31fd7fe1c6ae259ab15101443ff3acdcb4c98385..67d9e45dd35d86eb85df6c74b4d7d53fa089fede 100644 (file)
@@ -59,7 +59,7 @@ jobs:
           - distro: debian
             release: testing
           - distro: ubuntu
-            release: jammy
+            release: noble
           - distro: fedora
             release: "39"
           - distro: fedora
@@ -68,29 +68,48 @@ jobs:
             release: tumbleweed
           - distro: centos
             release: "9"
-          - distro: centos
-            release: "8"
 
     env:
       SYSTEMD_LOG_LEVEL: debug
 
     steps:
-    - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
-    - uses: systemd/mkosi@16e63baaeadf7a5b100c5b5bf780c61c29878cfc
+    - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
+    - uses: systemd/mkosi@5fd70560a1b1ac854b9e1c5a450df311f9000121
+
+    # 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: Configure
       run: |
-        tee mkosi.conf <<- EOF
+        tee mkosi.local.conf <<EOF
         [Distribution]
         Distribution=${{ matrix.distro }}
         Release=${{ matrix.release }}
-        EOF
 
-        tee mkosi.conf.d/99-ci.conf <<- EOF
-        [Content]
-        Environment=CI_BUILD=1
-                    SLOW_TESTS=true
+        [Output]
+        # Build a disk image in CI as this logic is much more prone to breakage.
+        Format=disk
 
+        [Host]
+        ToolsTree=default
+        ToolsTreeDistribution=fedora
+        QemuVsock=yes
+        # Sometimes we run on a host with /dev/kvm, but it is broken, so explicitly disable it
+        QemuKvm=yes
+        # TODO: Drop once https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2038777 is fixed in Github Actions
+        QemuFirmware=uefi
+        Ephemeral=yes
+        EOF
+
+        # These should override the options from mkosi.conf so we put them in a dropin that's ordered later
+        # instead.
+        tee mkosi.conf.d/99-ci.conf <<EOF
         [Host]
         KernelCommandLineExtra=systemd.unit=mkosi-check-and-shutdown.service
                                systemd.journald.max_level_console=debug
@@ -98,24 +117,22 @@ jobs:
                                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
-        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/system/mkosi.repart/10-usr.conf.d
-        tee mkosi.presets/system/mkosi.repart/10-usr.conf.d/squashfs.conf <<- EOF
+        mkdir -p mkosi.images/system/mkosi.repart/10-usr.conf.d
+        tee mkosi.images/system/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/initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/
-        mkdir -p mkosi.presets/system/mkosi.extra/usr/lib/systemd/system/emergency.service.d/
-        tee mkosi.presets/initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf <<- EOF
+        mkdir -p mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/
+        mkdir -p mkosi.images/system/mkosi.extra/usr/lib/systemd/system/emergency.service.d/
+        tee mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf <<EOF
         [Unit]
         FailureAction=exit
         [Service]
@@ -123,7 +140,7 @@ jobs:
         ExecStart=
         ExecStart=false
         EOF
-        cp mkosi.presets/initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf mkosi.presets/system/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf
+        cp mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf mkosi.images/system/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf
 
     - name: Generate secure boot key
       run: mkosi --debug genkey