From 51349ef93e77dc64d27dac7022ce32c1df7ff8f1 Mon Sep 17 00:00:00 2001 From: pi-farm Date: Mon, 9 Feb 2026 23:46:52 +0100 Subject: [PATCH] fix sign error --- .gitea/workflows/docker-builder.yml | 36 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/.gitea/workflows/docker-builder.yml b/.gitea/workflows/docker-builder.yml index 2d825a4..0c8374a 100644 --- a/.gitea/workflows/docker-builder.yml +++ b/.gitea/workflows/docker-builder.yml @@ -252,7 +252,8 @@ jobs: cosign version - name: Sign image - if: env.IS_TAG == 'true' + # Wir führen das aus, wenn gebaut wurde (egal ob Tag oder Main) + if: steps.check_files.outputs.should_build == 'true' shell: bash env: COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }} @@ -260,27 +261,24 @@ jobs: run: | set -euo pipefail - # Image Name definieren - IMAGE_TO_SIGN="${REGISTRY_HOST}/${IMAGE_BASE}:${VERSION}" - echo "Signing image $IMAGE_TO_SIGN" + # Welches Image signieren wir? (Tag oder Main) + if [[ "$IS_TAG" == "true" ]]; then + IMAGE_TO_SIGN="${REGISTRY_HOST}/${IMAGE_BASE}:${VERSION}" + else + IMAGE_TO_SIGN="${REGISTRY_HOST}/${IMAGE_BASE}:main" + fi + + echo "Signing image: $IMAGE_TO_SIGN" - # Den Private Key aus dem Secret in eine Datei schreiben (Cosign braucht das File) + # Key aus Secret wiederherstellen echo "$COSIGN_PRIVATE_KEY" > cosign.key - # Den Digest des Images holen (Sicherer als Tags) - # Wir nutzen hier docker inspect direkt auf das, was wir gerade gebaut haben - # Da wir Multiarch gebaut haben, müssen wir vorsichtig sein. - # Am sichersten ist es, den Digest remote vom Registry Server zu holen: - docker buildx imagetools inspect "${IMAGE_TO_SIGN}" --format '{{json .Manifest}}' > manifest.json - DIGEST=$(docker buildx imagetools inspect "${IMAGE_TO_SIGN}" --format '{{.Manifest.Digest}}') - - echo "Signiere Digest: $DIGEST" + # Signieren! + # --recursive: Signiert den Multi-Arch Index UND die darunterliegenden Images (amd64/arm64) + # --yes: Keine Rückfragen + # Wir übergeben hier direkt das Image mit Tag. Cosign holt sich den Digest selbst. + cosign sign --yes --recursive --key cosign.key "${IMAGE_TO_SIGN}" - # Signieren (rekursiv für Multi-Arch) - # -y überspringt die Bestätigungsabfrage - # --key verweist auf die Datei, die wir oben aus dem Secret erstellt haben - cosign sign --yes --key cosign.key "${IMAGE_TO_SIGN}@${DIGEST}" - - # Aufräumen (Key löschen, sicher ist sicher) + # Aufräumen rm cosign.key