SIGN IN SIGN UP

Retry current-build dependency artifact download up to 3 times (#2314)

## Why

Builds across AL-Go consumers (e.g. BCApps) have started failing
intermittently in the `Download Project Dependencies` step with
transient network errors such as:

```
##[error]Unable to download artifact(s): Failed to GetSignedArtifactURL: Unable to make request: ETIMEDOUT
```

This happens inside `actions/download-artifact`, which calls GitHub's
Actions Results service to mint a signed blob URL before each download.
A single flaky call to that service fails the whole step and cascades to
every dependent build job. The action retries the blob download but not
the signed-URL request, and it exposes no retry option.

## What

Since a JS `uses:` step can't be looped inside a composite action, the
single download step in `DownloadProjectDependencies/action.yaml` is now
a 3-attempt chain:

- Attempt 1 runs with `continue-on-error: true`.
- If it fails, wait 30 seconds, then Attempt 2 (also `continue-on-error:
true`).
- If that fails too, wait another 30 seconds, then Attempt 3, which has
no `continue-on-error` so it fails the job normally.

The retry conditions gate on `steps.<id>.outcome == 'failure'` (the
result before `continue-on-error` is applied), so a real failure
correctly triggers the next attempt. The job fails only if all 3
attempts fail; when an attempt succeeds, the remaining attempts are
skipped, so the happy path adds no time.

## Notes

- This is a mitigation for flaky infrastructure, not a code bug. A more
durable follow-up would replace this JS action with AL-Go's own
resilient PowerShell downloader (`DownloadArtifact` /
`InvokeWebRequest`, which hits the REST `archive_download_url` directly
and already retries), used everywhere else for dependency downloads.
- On a retry, the full matched artifact set is re-downloaded, including
any that already succeeded. It's idempotent, just slightly redundant
bandwidth on the uncommon retry path.
A
Alexander Holstrup committed
93bb8356940f97cef1ffc71323f5d2a3e32708c4
Parent: 6dbcc5b
Committed by GitHub <noreply@github.com> on 7/10/2026, 10:15:42 PM