fix: Update-Skript, Containerfile-Optimierungen und chunkah-Rechunking

- notify-bootc-user.sh: D-Bus-Umgebung korrekt fuer Systemd-Service,
  jq-basierter Staging-Check (.status.staged != null), Guard Clauses,
  -Variable entfernt
- Containerfile: COPY --chmod=755 fuer Skript-Permissions
- build/20-multimedia.sh: Redundantes dnf5 clean all entfernt
- build/30-virt.sh: dnf5 autoremove und Cleanup entfernt
- build/40-remove-packages.sh: || true entfernt (Fehler sichtbar machen)
- build/50-prepare-flatpak-for-bazaar.sh: curl -f --retry 3 hinzugefuegt
- build.yml: chunkah Rechunk-Step fuer content-based Layers (Delta-Updates),
  Cache-Key erweitert (scripts/**), continue-on-error entfernt
- build-installer-iso.yml: concurrency-Block hinzugefuegt
This commit is contained in:
gunnar
2026-05-30 15:42:14 +02:00
parent 63baebf228
commit 94460a999d
8 changed files with 89 additions and 74 deletions
+28 -3
View File
@@ -39,7 +39,6 @@ jobs:
- name: Mount BTRFS for podman storage
id: container-storage-action
uses: ublue-os/container-storage-action@911baca08baf30c8654933e9e9723cb399892140 # main
continue-on-error: true
with:
target-dir: /var/lib/containers
mount-opts: compress-force=zstd:2
@@ -75,9 +74,9 @@ jobs:
/var/lib/containers/storage/overlay
~/.cache/buildah
/tmp/.buildah-cache
key: ${{ runner.os }}-${{ github.workflow }}-${{ hashFiles('Containerfile', 'build/**', 'configs/**') }}-${{ github.ref }}
key: ${{ runner.os }}-${{ github.workflow }}-${{ hashFiles('Containerfile', 'build/**', 'configs/**', 'scripts/**') }}-${{ github.ref }}
restore-keys: |
${{ runner.os }}-${{ github.workflow }}-${{ hashFiles('Containerfile', 'build/**', 'configs/**') }}-
${{ runner.os }}-${{ github.workflow }}-${{ hashFiles('Containerfile', 'build/**', 'configs/**', 'scripts/**') }}-
${{ runner.os }}-${{ github.workflow }}-
- name: Build Image
@@ -91,6 +90,32 @@ jobs:
labels: ${{ steps.metadata.outputs.labels }}
oci: true
- name: Rechunk with chunkah
run: |
set -euo pipefail
IMG="localhost/${{ env.IMAGE_NAME }}:${{ env.DEFAULT_TAG }}"
CHUNKED_IMG="localhost/${{ env.IMAGE_NAME }}-chunked:${{ env.DEFAULT_TAG }}"
# Image-Config fuer chunkah sichern (Labels, Annotations, etc.)
CONFIG=$(sudo buildah inspect "$IMG" | jq -c .)
# chunkah: content-based Layer-Splitting
# --max-layers 128: Desktop-Images brauchen mehr als Default (64)
# --prune /sysroot/: entfernt OSTree-Metadaten (optional seit bootc 1.1.3)
# --label ostree.*: entfernt gueltigkeitsfaehige ostree-Labels
sudo buildah build --skip-unused-stages=false \
--from "$IMG" \
--build-arg CHUNKAH_CONFIG_STR="$CONFIG" \
--build-arg "CHUNKAH_ARGS=--prune /sysroot/ --max-layers 128 --label ostree.commit- --label ostree.final-diffid-" \
-t "$CHUNKED_IMG" \
https://github.com/coreos/chunkah/releases/download/v0.5.0/Containerfile.splitter
# Platz freigeben: Original und Zwischenprodukt entfernen
sudo buildah rmi "$IMG"
sudo buildah tag "$CHUNKED_IMG" "$IMG"
sudo buildah rmi "$CHUNKED_IMG"
- name: Login to GitHub Container Registry
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v3
if: github.event_name != 'pull_request' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch)