From ef46b99ee84d069bc6d3f81381363671fed518e6 Mon Sep 17 00:00:00 2001 From: humocs-man <251756307+humocs-man@users.noreply.github.com> Date: Sun, 17 May 2026 18:30:50 +0200 Subject: [PATCH] Modify build.yml to include rpm-ostree installation Updated the build workflow to install rpm-ostree directly on the runner and apply native bootc rechunking. --- .github/workflows/build.yml | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 01102cc..87c0ece 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -91,20 +91,26 @@ jobs: labels: ${{ steps.metadata.outputs.labels }} oci: true - # Extrahiert das fertige 128-Layer-Archiv aus dem gerade gebauten Image - - name: Extract Native Rechunked Archive + # JETZT DIREKT AUF DEM RUNNER: rpm-ostree installieren und mit echten root-rechten rechunked Archiv bauen + - name: Apply native bootc rechunking + id: rechunk run: | set -x mkdir -p ./chunkah-out - # Temporären Container aus dem soeben gebauten Buildah-Image erstellen - CONTAINER_ID=$(podman create localhost/${{ env.IMAGE_NAME }}:${{ env.DEFAULT_TAG }}) - - # Das OCI-Archiv auf den Runner-Host kopieren - podman cp $CONTAINER_ID:/var/tmp/chunked-output/image.ociarchive ./chunkah-out/image.ociarchive - - # Container aufräumen - podman rm $CONTAINER_ID + # Installiere rpm-ostree direkt auf dem Ubuntu-Host des Runners + sudo apt-get update && sudo apt-get install -y rpm-ostree + + # Ausführen als echtes root, damit unshare und Mounts problemlos klappen + sudo rpm-ostree compose build-chunked-oci \ + --bootc \ + --format-version=2 \ + --max-layers 128 \ + --from=containers-storage:localhost/${{ env.IMAGE_NAME }}:${{ env.DEFAULT_TAG }} \ + --output=oci-archive:./chunkah-out/image.ociarchive + + # Rechte korrigieren, damit Skopeo im nächsten Schritt Lesezugriff hat + sudo chmod 644 ./chunkah-out/image.ociarchive - name: Login to GitHub Container Registry uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v3 @@ -122,7 +128,7 @@ jobs: export REGISTRY_AUTH_FILE=$HOME/.docker/config.json REGISTRY_PATH="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}" - # Skopeo arbeitet direkt auf der extrahierten Archiv-Datei als Host-User (kein podman unshare nötig!) + # Skopeo arbeitet direkt auf dem Archiv auf dem Host-Dateisystem for tag in ${{ steps.metadata.outputs.tags }}; do skopeo copy \ --dest-compress-format=zstd \