Merge pull request #13 from dev
Build production Docker image / build-backend-image (push) Failing after 19s
Build production Docker image / deploy-production (push) Has been skipped

ci: retry ecr push before cleanup
This commit was merged in pull request #13.
This commit is contained in:
qzl
2026-05-21 17:00:12 +08:00
+17 -5
View File
@@ -96,21 +96,33 @@ jobs:
docker tag "${IMAGE_NAME}:prod-${GITHUB_SHA}" "${ecr_image}:latest" docker tag "${IMAGE_NAME}:prod-${GITHUB_SHA}" "${ecr_image}:latest"
image_ids="$(aws ecr list-images \ retry() {
for attempt in 1 2 3; do
if "$@"; then
return 0
fi
if [ "${attempt}" -eq 3 ]; then
return 1
fi
sleep "$((attempt * 5))"
done
}
retry docker push "${ecr_image}:latest"
untagged_image_ids="$(aws ecr list-images \
--region "${AWS_REGION}" \ --region "${AWS_REGION}" \
--repository-name "${ECR_REPOSITORY}" \ --repository-name "${ECR_REPOSITORY}" \
--filter tagStatus=UNTAGGED \
--query 'imageIds[*]' \ --query 'imageIds[*]' \
--output json)" --output json)"
if [ "${image_ids}" != "[]" ]; then if [ "${untagged_image_ids}" != "[]" ]; then
aws ecr batch-delete-image \ aws ecr batch-delete-image \
--region "${AWS_REGION}" \ --region "${AWS_REGION}" \
--repository-name "${ECR_REPOSITORY}" \ --repository-name "${ECR_REPOSITORY}" \
--image-ids "${image_ids}" >/dev/null \ --image-ids "${untagged_image_ids}" >/dev/null \
|| echo "Warning: ECR image cleanup failed; ensure the CI AWS user has ecr:BatchDeleteImage" >&2 || echo "Warning: ECR image cleanup failed; ensure the CI AWS user has ecr:BatchDeleteImage" >&2
fi fi
docker push "${ecr_image}:latest"
deploy-production: deploy-production:
needs: build-backend-image needs: build-backend-image
runs-on: wsl2-docker-host runs-on: wsl2-docker-host