Skip to content

feat(qnx-build): retry qnx.com download in a separate fetch step - #246

Merged
AlexanderLanin merged 1 commit into
eclipse-score:mainfrom
umaucher:um_qnx_fetch_retry
Oct 12, 2026
Merged

AlexanderLanin merged 1 commit into
eclipse-score:mainfrom
umaucher:um_qnx_fetch_retry

Conversation

@umaucher

@umaucher umaucher commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

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).

  • Add a bazel fetch step before the build that retries the download.
  • Make the retry configurable via the new inputs fetch-attempts (default 3) and
    fetch-retry-delay in seconds (default 30). No sleep after the last attempt.
  • The fetch command mirrors the build command; both carry a comment to keep them in sync.
  • Test step is unchanged; its fetch is not retried.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 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 fetch three 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.

Comment thread .github/workflows/qnx-build.yml Outdated
Comment thread .github/workflows/qnx-build.yml Outdated
@umaucher
umaucher force-pushed the um_qnx_fetch_retry branch from af6f8ef to 9d2836d Compare October 8, 2026 13:41
Comment thread .github/workflows/qnx-build.yml Outdated
set -euo pipefail

# Retry only the download, so transient qnx.com timeouts do not fail the build.
for attempt in 1 2 3; do

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we add the retry count as parameter?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Lets see if this helps at all first :-)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

done

Comment thread .github/workflows/qnx-build.yml Outdated
fi
echo "Fetch attempt ${attempt} failed"
if [ "${attempt}" -lt 3 ]; then
sleep 30

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

sleep 30 could also be a parameter

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Lets see if this helps at all first :-)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

done

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 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>
@umaucher
umaucher force-pushed the um_qnx_fetch_retry branch from 9d2836d to 2ee3a94 Compare October 9, 2026 06:56
@umaucher

umaucher commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor Author

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)

@4og
4og requested a balanced review from Copilot October 9, 2026 11:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The retry-count input accepts numeric values that break or bypass the integer-based retry loop.

1 open finding

🧠 Review effort: Balanced

Comment thread .github/workflows/qnx-build.yml
@AlexanderLanin
AlexanderLanin merged commit f99dada into eclipse-score:main Oct 12, 2026
2 checks passed
lurtz pushed a commit that referenced this pull request Oct 22, 2026
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

4 participants