diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index afc558f..6bec20c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -153,29 +153,40 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - # 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 + # Ersetze den Push-Block durch diesen hier: + - name: Push to GHCR with zstd using Skopeo (OCI Intermediate Step) + id: push if: github.event_name != 'pull_request' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch) run: | - # Wir nutzen die Tags direkt aus dem metadata-Schritt - # Die Liste ist durch Leerzeichen getrennt, was Bash in der Schleife perfekt versteht. + # Erstelle ein temporäres Verzeichnis für das OCI-Image + mkdir -p ./tmp-oci-image + for tag in ${{ steps.metadata.outputs.tags }}; do - echo "Pushing tag: $tag" + echo "Processing 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 \ + # SCHRITT 1: Lokal von Docker-Storage zu OCI-Format konvertieren + # Hier nutzen wir das OCI-Format, das das --compression Flag versteht. + skopeo copy \ docker://${{ env.IMAGE_NAME }}:${{ env.DEFAULT_TAG }} \ + oci:./tmp-oci-image + + # SCHRITT 2: Von OCI-Verzeichnis zur Registry pushen mit zstd + # Jetzt wenden wir die Kompression explizit an. + skopeo copy \ + --compression zstd \ + oci:./tmp-oci-image \ ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}:$tag done + + # Aufräumen + rm -rf ./tmp-oci-image env: - # 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.