From 73b96c784bf8791dcc699cdf7c44cb8b8c93abea Mon Sep 17 00:00:00 2001 From: humocs-man <251756307+humocs-man@users.noreply.github.com> Date: Fri, 24 Apr 2026 18:13:30 +0200 Subject: [PATCH] Update GHCR push step to use Skopeo with zstd Replaced the 'Push To GHCR' block with a new implementation using Skopeo for pushing images with zstd compression. --- .github/workflows/build.yml | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 67ea3a0..afc558f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -153,19 +153,28 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Push To GHCR - uses: redhat-actions/push-to-registry@5ed88d269cf581ea9ef6dd6806d01562096bee9c # v2 + # Ersetze den gesamten "Push To GHCR" Block durch diesen hier: + - name: Push to GHCR with zstd using Skopeo + id: push # Wir behalten die ID, falls spätere Schritte sie brauchen if: github.event_name != 'pull_request' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch) - id: push + run: | + # Wir nutzen die Tags direkt aus dem metadata-Schritt + # Die Liste ist durch Leerzeichen getrennt, was Bash in der Schleife perfekt versteht. + for tag in ${{ steps.metadata.outputs.tags }}; do + echo "Pushing tag: $tag" + + # Quelle: Das lokal gebaute Image (ohne Registry-Präfix, wie in Buildah definiert) + # Ziel: Die vollständige URI (Registry + Name + Tag) + skopeo copy --compression zstd \ + docker://${{ env.IMAGE_NAME }}:${{ env.DEFAULT_TAG }} \ + ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}:$tag + done env: - REGISTRY_USER: ${{ github.actor }} - REGISTRY_PASSWORD: ${{ github.token }} - with: - registry: ${{ env.IMAGE_REGISTRY }} - image: ${{ env.IMAGE_NAME }} - tags: ${{ steps.metadata.outputs.tags }} - username: ${{ env.REGISTRY_USER }} - password: ${{ env.REGISTRY_PASSWORD }} + # Wir brauchen hier keine USER/PASS, da 'docker/login-action' bereits läuft + IMAGE_NAME: ${{ env.IMAGE_NAME }} + IMAGE_REGISTRY: ${{ env.IMAGE_REGISTRY }} + DEFAULT_TAG: ${{ env.DEFAULT_TAG }} + # OPTIONAL: Image Signing with Cosign # Signing is disabled by default. To enable, see README.md "Optional: Enable Image Signing" section.