Skip to content

Commit d640da2

Browse files
committed
fix(ci): target live state and fail fast on persistent/new provision errors
1 parent 59eaccf commit d640da2

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

.github/workflows/azd-deploy.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -530,8 +530,24 @@ jobs:
530530
fi
531531
export RS_KEY
532532
533+
# Ensure azd always targets the live remote state values.
534+
azd env set RS_RESOURCE_GROUP "$RS_RESOURCE_GROUP"
535+
azd env set RS_STORAGE_ACCOUNT "$RS_STORAGE_ACCOUNT"
536+
azd env set RS_CONTAINER_NAME "$RS_CONTAINER_NAME"
537+
azd env set RS_KEY "$RS_KEY"
538+
533539
max_attempts=3
534540
attempt=1
541+
previous_transient_signature=""
542+
543+
extract_transient_signature() {
544+
local log_file="$1"
545+
grep -E 'RequestConflict|ContainerAppOperationInProgress|Operation expired|LeaseIdMissing' "$log_file" \
546+
| sed -E 's/[[:space:]]+/ /g' \
547+
| sed -E 's/[0-9a-fA-F-]{20,}/<id>/g' \
548+
| sort -u \
549+
| tr '\n' '|' || true
550+
}
535551
536552
while [ "$attempt" -le "$max_attempts" ]; do
537553
echo "=== Provision attempt $attempt/$max_attempts ==="
@@ -558,6 +574,21 @@ jobs:
558574
exit "$provision_exit"
559575
fi
560576
577+
current_transient_signature="$(extract_transient_signature "$provision_log")"
578+
if [ -n "$previous_transient_signature" ]; then
579+
if [ "$current_transient_signature" = "$previous_transient_signature" ]; then
580+
echo "Provision stopped: transient errors persisted across attempts (no recovery trend)."
581+
exit "$provision_exit"
582+
fi
583+
584+
echo "Provision stopped: new transient error signature detected compared to previous attempt."
585+
echo "Previous: ${previous_transient_signature}"
586+
echo "Current : ${current_transient_signature}"
587+
exit "$provision_exit"
588+
fi
589+
590+
previous_transient_signature="$current_transient_signature"
591+
561592
sleep_seconds=$((attempt * 60))
562593
echo "Transient conflict detected. Retrying in ${sleep_seconds}s..."
563594
sleep "$sleep_seconds"

0 commit comments

Comments
 (0)