Repository navigation
feat(qnx-build): retry qnx.com download in a separate fetch step - #246
Conversation
052cd4d to
c39c7d3
Compare
There was a problem hiding this comment.
🟡 Changes recommended
Shared scalar arguments break supported credential-helper paths containing whitespace.
2 open findings
What changed in this PR
Adds retry handling for transient QNX dependency download failures before building.
Changes:
- Shares Bazel arguments between fetch and build.
- Retries
bazel fetchthree times with pauses. - Leaves QNX testing unchanged.
| File | Description |
|---|---|
.github/workflows/qnx-build.yml |
Adds retried dependency fetching and shared Bazel arguments. |
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
af6f8ef to
9d2836d
Compare
| set -euo pipefail | ||
|
|
||
| # Retry only the download, so transient qnx.com timeouts do not fail the build. | ||
| for attempt in 1 2 3; do |
There was a problem hiding this comment.
can we add the retry count as parameter?
There was a problem hiding this comment.
Lets see if this helps at all first :-)
| fi | ||
| echo "Fetch attempt ${attempt} failed" | ||
| if [ "${attempt}" -lt 3 ]; then | ||
| sleep 30 |
There was a problem hiding this comment.
sleep 30 could also be a parameter
There was a problem hiding this comment.
Lets see if this helps at all first :-)
There was a problem hiding this comment.
🟢 Approval recommended
The retry logic is correctly bounded and preserves the existing build and test behavior.
0 open findings
2 resolved since last review
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
Run bazel fetch before the build, retried with configurable attempts (fetch-attempts) and delay (fetch-retry-delay), so transient qnx.com timeouts do not fail the job. Signed-off-by: Uwe Maucher <205777204+umaucher@users.noreply.github.com>
9d2836d to
2ee3a94
Compare
|
simplified again (single commit on top of main) with the plain configurable retry feature ... removed the env vars abstractions since the GITHUB env "only" supports string variables there is no clean solution for the quoting (IMHO 🤷 ❔ ) so only did a "poor mans" commend to create awareness to change fetch and build in parallel if needed (still this is abstracted anyway via inputs or is only static) |
…it (#260) `bazel fetch` only covers the loading phase. The QNX SDP is a toolchain repository resolved during analysis, so the fetch step introduced in #246 did not download it and the build step still failed on a qnx.com timeout without retry. Use `bazel build --nobuild` in the fetch step instead. Signed-off-by: Uwe Maucher <205777204+umaucher@users.noreply.github.com>


Transient timeouts while downloading the QNX SDP from qnx.com fail the whole job
(e.g. https://github.com/eclipse-score/persistency/actions/runs/37758016456).
bazel fetchstep before the build that retries the download.fetch-attempts(default 3) andfetch-retry-delayin seconds (default 30). No sleep after the last attempt.