diff --git a/.gitea/workflows/push.yml b/.gitea/workflows/push.yml index eb034ff..0c4c817 100644 --- a/.gitea/workflows/push.yml +++ b/.gitea/workflows/push.yml @@ -53,7 +53,20 @@ jobs: - name: Start containers run: | docker compose -p $COMPOSE_PROJECT_NAME down - docker compose -p $COMPOSE_PROJECT_NAME up -d --build + + # 添加重试逻辑 + RETRIES=3 + DELAY=10 + count=0 + until docker compose -p $COMPOSE_PROJECT_NAME up -d --build; do + count=$((count+1)) + if [ $count -ge $RETRIES ]; then + echo "Deployment failed after $RETRIES attempts" + exit 1 + fi + echo "Deployment failed. Retrying in $DELAY seconds... ($count/$RETRIES)" + sleep $DELAY + done cleanup: name: Cleanup Dangling Images @@ -97,6 +110,19 @@ jobs: } EOF - curl -s -X POST "$WEBHOOK_URL" \ + # 添加重试逻辑 + RETRIES=3 + DELAY=5 + count=0 + # 使用 -f 让 curl 在 HTTP 错误时返回非零退出码 + until curl -s -f -X POST "$WEBHOOK_URL" \ -H "Content-Type: application/json" \ - -d @wechat_payload.json \ No newline at end of file + -d @wechat_payload.json; do + count=$((count+1)) + if [ $count -ge $RETRIES ]; then + echo "WeChat notification failed after $RETRIES attempts" + exit 1 + fi + echo "Notification failed. Retrying in $DELAY seconds... ($count/$RETRIES)" + sleep $DELAY + done \ No newline at end of file