Skip to content

Add retries to the install action for resilience#2608

Merged
leighmcculloch merged 4 commits into
mainfrom
claude/inspiring-brahmagupta-cQaq4
Jun 8, 2026
Merged

Add retries to the install action for resilience#2608
leighmcculloch merged 4 commits into
mainfrom
claude/inspiring-brahmagupta-cQaq4

Conversation

@leighmcculloch
Copy link
Copy Markdown
Member

@leighmcculloch leighmcculloch commented Jun 8, 2026

What

Make the stellar/stellar-cli install action resilient to transient network failures during the binary download.

The curl call that fetches the release tarball now retries up to 5 times with backoff (--retry 5 --retry-delay 5 --retry-connrefused --retry-all-errors), bounded by --connect-timeout 30 and --max-time 300. The download now writes to a fixed file in $RUNNER_TEMP and is extracted by tar afterwards, rather than piping curl straight into tar, so that a retried transfer can safely restart without corrupting the tar stream. Using a fixed local filename also keeps the download path independent of the (untrusted) version string.

Why

A single transient network blip previously failed the whole job — for example this rs-soroban-sdk run failed during the install step. With retries in place, a momentary failure is retried instead of failing the build.

This mirrors the approach taken in stellar/actions#104, which added curl's built-in retry flags to harden a similar download path.

Notes

The gh attestation verify step is intentionally left unchanged: the gh CLI already retries attestation fetches internally (up to 3 times on 5xx responses), so a separate retry loop there added little.

Copilot AI review requested due to automatic review settings June 8, 2026 15:55
@github-project-automation github-project-automation Bot moved this to Backlog (Not Ready) in DevX Jun 8, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR hardens the repository’s composite GitHub Action (action.yml) that installs stellar-cli, improving CI resilience by retrying network-dependent steps (binary download and attestation verification) instead of failing on transient errors.

Changes:

  • Switch the binary download from curl | tar to curl (with retries/timeouts) downloading into a temp file, then extracting via tar.
  • Wrap gh attestation verify in a 5-attempt retry loop with exponential backoff.

Comment thread action.yml Outdated
@leighmcculloch leighmcculloch requested a review from fnando June 8, 2026 20:33
@leighmcculloch leighmcculloch enabled auto-merge (squash) June 8, 2026 20:33
@leighmcculloch leighmcculloch merged commit 59aca14 into main Jun 8, 2026
225 checks passed
@leighmcculloch leighmcculloch deleted the claude/inspiring-brahmagupta-cQaq4 branch June 8, 2026 21:03
@github-project-automation github-project-automation Bot moved this from Backlog (Not Ready) to Done in DevX Jun 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants