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.
This commit is contained in:
humocs-man
2026-04-24 18:13:30 +02:00
committed by GitHub
parent d0c4ec6a15
commit 73b96c784b
+20 -11
View File
@@ -153,19 +153,28 @@ jobs:
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Push To GHCR # Ersetze den gesamten "Push To GHCR" Block durch diesen hier:
uses: redhat-actions/push-to-registry@5ed88d269cf581ea9ef6dd6806d01562096bee9c # v2 - 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) 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: env:
REGISTRY_USER: ${{ github.actor }} # Wir brauchen hier keine USER/PASS, da 'docker/login-action' bereits läuft
REGISTRY_PASSWORD: ${{ github.token }} IMAGE_NAME: ${{ env.IMAGE_NAME }}
with: IMAGE_REGISTRY: ${{ env.IMAGE_REGISTRY }}
registry: ${{ env.IMAGE_REGISTRY }} DEFAULT_TAG: ${{ env.DEFAULT_TAG }}
image: ${{ env.IMAGE_NAME }}
tags: ${{ steps.metadata.outputs.tags }}
username: ${{ env.REGISTRY_USER }}
password: ${{ env.REGISTRY_PASSWORD }}
# OPTIONAL: Image Signing with Cosign # OPTIONAL: Image Signing with Cosign
# Signing is disabled by default. To enable, see README.md "Optional: Enable Image Signing" section. # Signing is disabled by default. To enable, see README.md "Optional: Enable Image Signing" section.