@@ -731,20 +731,42 @@ jobs:
731731 uses : sigstore/cosign-installer@6f9f17788090df1f26f669e9d70d6ae9567deba6 # v4.1.2
732732
733733 # Sign GHCR image with keyless signing (Sigstore/Fulcio)
734+ # Retry up to 3 times to handle transient Fulcio/Rekor INTERNAL_ERROR (HTTP/2 stream errors)
734735 - name : Sign GHCR Image
735736 if : env.TRIGGER_EVENT != 'pull_request' && steps.skip.outputs.skip_build != 'true' && steps.skip.outputs.is_feature_push != 'true'
736737 run : |
737738 echo "Signing GHCR image with keyless signing..."
738- cosign sign --yes ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}@${{ steps.build-and-push.outputs.digest }}
739- echo "✅ GHCR image signed successfully"
739+ for attempt in 1 2 3; do
740+ if cosign sign --yes ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}@${{ steps.build-and-push.outputs.digest }}; then
741+ echo "✅ GHCR image signed successfully"
742+ break
743+ fi
744+ if [ "$attempt" -eq 3 ]; then
745+ echo "❌ GHCR signing failed after 3 attempts"
746+ exit 1
747+ fi
748+ echo "⚠️ Attempt $attempt failed — retrying in 15s..."
749+ sleep 15
750+ done
740751
741752 # Sign Docker Hub image with keyless signing (Sigstore/Fulcio)
753+ # Retry up to 3 times to handle transient Fulcio/Rekor INTERNAL_ERROR (HTTP/2 stream errors)
742754 - name : Sign Docker Hub Image
743755 if : env.TRIGGER_EVENT != 'pull_request' && steps.skip.outputs.skip_build != 'true' && steps.skip.outputs.is_feature_push != 'true' && env.HAS_DOCKERHUB_TOKEN == 'true'
744756 run : |
745757 echo "Signing Docker Hub image with keyless signing..."
746- cosign sign --yes ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}@${{ steps.build-and-push.outputs.digest }}
747- echo "✅ Docker Hub image signed successfully"
758+ for attempt in 1 2 3; do
759+ if cosign sign --yes ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}@${{ steps.build-and-push.outputs.digest }}; then
760+ echo "✅ Docker Hub image signed successfully"
761+ break
762+ fi
763+ if [ "$attempt" -eq 3 ]; then
764+ echo "❌ Docker Hub signing failed after 3 attempts"
765+ exit 1
766+ fi
767+ echo "⚠️ Attempt $attempt failed — retrying in 15s..."
768+ sleep 15
769+ done
748770
749771 # Attach SBOM to Docker Hub image
750772 - name : Attach SBOM to Docker Hub
0 commit comments