From 040cb677155dfdfb67b547af3a4251484f708ecd Mon Sep 17 00:00:00 2001 From: hhqyb Date: Mon, 27 Jul 2026 15:36:06 +0800 Subject: [PATCH] Fix Gitea Actions image tags and push retries --- .gitea/workflows/publish-container.yml | 30 +++++++++++++++++++------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/publish-container.yml b/.gitea/workflows/publish-container.yml index c0c80f1..b56f462 100644 --- a/.gitea/workflows/publish-container.yml +++ b/.gitea/workflows/publish-container.yml @@ -27,18 +27,32 @@ jobs: - name: Build and push image run: | - SHA_TAG="sha-${GITEA_SHA}" - docker build --pull --tag "${IMAGE}:${SHA_TAG}" . - docker push "${IMAGE}:${SHA_TAG}" + push_image() { + local image="$1" + local attempt=1 + until docker push "$image"; do + if [ "$attempt" -ge 3 ]; then + echo "Failed to push ${image} after ${attempt} attempts" + return 1 + fi + attempt=$((attempt + 1)) + echo "Push failed; retrying ${image} (${attempt}/3) in 10 seconds" + sleep 10 + done + } - if [ "$GITEA_REF" = "refs/heads/main" ]; then + SHA_TAG="sha-${GITHUB_SHA}" + docker build --pull --tag "${IMAGE}:${SHA_TAG}" . + push_image "${IMAGE}:${SHA_TAG}" + + if [ "$GITHUB_REF" = "refs/heads/main" ]; then docker tag "${IMAGE}:${SHA_TAG}" "${IMAGE}:latest" - docker push "${IMAGE}:latest" + push_image "${IMAGE}:latest" fi - case "$GITEA_REF" in + case "$GITHUB_REF" in refs/tags/v*) - docker tag "${IMAGE}:${SHA_TAG}" "${IMAGE}:${GITEA_REF_NAME}" - docker push "${IMAGE}:${GITEA_REF_NAME}" + docker tag "${IMAGE}:${SHA_TAG}" "${IMAGE}:${GITHUB_REF_NAME}" + push_image "${IMAGE}:${GITHUB_REF_NAME}" ;; esac