diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 80a8a4e..13502e6 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -1,6 +1,7 @@ name: Deploy on: + pull_request: push: branches: - master @@ -21,20 +22,27 @@ jobs: mkdir -p /workspace/unkin/terraform-nomad/plans export RUN_ID=$((GITHUB_RUN_NUMBER - 1)) export PLANS_URL="https://git.query.consul/${GITHUB_REPOSITORY}/actions/runs/${RUN_ID}/artifacts/plans" - export MAX_RETRIES=5 + export MAX_RETRIES=6 export RETRY_COUNT=0 echo "Attempting to download plans from ${PLANS_URL}" while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do - curl -L -o /workspace/plans.zip "${PLANS_URL}" && break || true - echo "Plans file not available yet. Retrying in 10 seconds... ($((RETRY_COUNT + 1))/$MAX_RETRIES)" - RETRY_COUNT=$((RETRY_COUNT + 1)) - sleep 10 + # Download the file + curl -L -o /workspace/plans.zip "${PLANS_URL}" --fail --silent + # Validate if it is a valid ZIP + if unzip -t /workspace/plans.zip > /dev/null 2>&1; then + echo "Plans file downloaded and verified successfully." + break + else + echo "Invalid or corrupt plans file. Retrying in 10 seconds... ($((RETRY_COUNT + 1))/$MAX_RETRIES)" + RETRY_COUNT=$((RETRY_COUNT + 1)) + sleep 10 + fi done - if [ ! -f /workspace/plans.zip ]; then - echo "Failed to download plans file after $MAX_RETRIES attempts." + if [ $RETRY_COUNT -eq $MAX_RETRIES ]; then + echo "Failed to download a valid plans file after $MAX_RETRIES attempts." exit 1 fi - echo "Plans file downloaded. Extracting..." + echo "Extracting plans..." unzip /workspace/plans.zip -d /workspace/unkin/terraform-nomad/plans echo "Plans file extracted successfully."