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:
@@ -3,6 +3,10 @@ name: Build Installer ISO
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build-iso:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user