Skip to content

Commit 96b9770

Browse files
authored
Add a retry and better failure handling for retrieving github version (#1999)
This should prevent publish failure in case of problem with github API
1 parent 6a8d1f0 commit 96b9770

1 file changed

Lines changed: 27 additions & 2 deletions

File tree

.github/workflows/publish.yml

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,35 @@ jobs:
3434

3535
- name: Get latest pre-release from github
3636
id: github-release
37-
env:
37+
env:
3838
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3939
run: |
40-
echo version=$(gh api repos/quarto-dev/quarto-cli/releases | jq -r 'map(select(.prerelease)) | first | .tag_name | sub("^v";"")') >> "$GITHUB_OUTPUT"
40+
set -euo pipefail
41+
42+
# Retry a few times in case the API returns transient nulls
43+
for i in 1 2 3 4 5; do
44+
version="$(
45+
gh api repos/quarto-dev/quarto-cli/releases \
46+
| jq -r '
47+
map(select(.prerelease == true and (.tag_name? // "") != ""))
48+
| first
49+
| .tag_name?
50+
// empty
51+
| sub("^v";"")
52+
'
53+
)" || true
54+
55+
if [ -n "${version:-}" ]; then
56+
echo "version=$version" >> "$GITHUB_OUTPUT"
57+
exit 0
58+
fi
59+
60+
echo "Attempt $i: prerelease version not resolved; retrying..." >&2
61+
sleep 2
62+
done
63+
64+
echo "Failed to resolve prerelease version after retries." >&2
65+
exit 1
4166
4267
- name: Set up Quarto
4368
uses: quarto-dev/quarto-actions/setup@v2

0 commit comments

Comments
 (0)