From 66eec8134c29fe57d04f618c389aa3d04e0e8316 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 12 Sep 2024 12:43:31 -0400 Subject: [PATCH] ci: add retry for preventing connection failed (#87) (#88) Co-authored-by: oluceps --- .github/workflows/sync-upstream.yml | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/.github/workflows/sync-upstream.yml b/.github/workflows/sync-upstream.yml index 56a9b94..1c71808 100644 --- a/.github/workflows/sync-upstream.yml +++ b/.github/workflows/sync-upstream.yml @@ -66,13 +66,27 @@ jobs: --arg hash "$hash" \ '.version = $version | .rev = $rev | .hash = $hash' \ ./$project/metadata.json | tee ./$project/metadata.json.tmp - # Replace the original file mv ./$project/{metadata.json.tmp,metadata.json} - # Update vendorHash - vendor=$(nix --log-format raw build .#$project 2>&1 | grep "got: " | awk '/got: / {print $NF}' || echo "") + # Retry logic for awk extraction + max_retries=3 + retry_count=0 + until [ "$retry_count" -ge "$max_retries" ]; do + vendor=$(nix --log-format raw build .#$project 2>&1 | grep "got: " | awk '/got: / {print $NF}') + if [ -n "$vendor" ]; then + break + fi + retry_count=$((retry_count + 1)) + echo "Retrying nix command and awk extraction ($retry_count/$max_retries)..." + sleep 3 + done + if [ -z "$vendor" ]; then + echo "awk extraction failed after $max_retries attempts." + exit 1 + fi + # Update vendorHash in metadata.json jq --arg vendor "$vendor" \ - '.vendorHash = $vendor' \ - ./$project/metadata.json | tee ./$project/metadata.json.tmp + '.vendorHash = $vendor' \ + ./$project/metadata.json | tee ./$project/metadata.json.tmp mv ./$project/{metadata.json.tmp,metadata.json} - name: Commit changes and push