Skip to content

Add QNX build and test workflow with emulated execution#106

Merged
nradakovic merged 1 commit into
mainfrom
nira_add_qnx_ci
Jul 17, 2026
Merged

Add QNX build and test workflow with emulated execution#106
nradakovic merged 1 commit into
mainfrom
nira_add_qnx_ci

Conversation

@nradakovic

@nradakovic nradakovic commented Jul 16, 2026

Copy link
Copy Markdown
Member

Introduce a GitHub Actions workflow that builds and tests the toolchains
for the x86_64-qnx and aarch64-qnx configurations, running the resulting
QNX binaries under QEMU emulation.

  • Add .github/workflows/qnx.yml running a matrix build/test for both QNX
    CPU targets, setting up the QNX SDP, qemu-system and KVM, and dumping
    test logs on failure.
  • Add .github/tools/qnx_credential_helper.py to authenticate QNX package
    downloads via --credential_helper.
  • Wire up test execution in tests/.bazelrc: register the ImageFS
    toolchains, run cc tests under the QNX emulator (--run_under), and
    restrict QNX runs to native cc targets (--test_lang_filters=cc).
  • Add an :all_tests aggregate test_suite in tests/BUILD for CI to depend
    on.
  • Update tests/MODULE.bazel: add score_qnx_unit_tests and
    score_rules_imagefs dev dependencies with their ImageFS toolchains,
    bump bazel_skylib 1.8.2 -> 1.9.0, and move the aarch64 QNX SDP to
    8.0.4. Refresh MODULE.bazel.lock accordingly.
  • Adjust feature tests for QNX: skip the Linux-only /proc-based
    fully_static_link_test, drop the redundant -lpthread link flag (QNX
    bundles pthread in libc), and account for PIE base addresses when
    asserting the user_link_flags --defsym marker.

@nradakovic nradakovic self-assigned this Jul 16, 2026
Copilot AI review requested due to automatic review settings July 16, 2026 09:29
@nradakovic nradakovic added wip Work in progress unit test Add or update unit tests p3 Medium/Low - handle it within normal process automation labels Jul 16, 2026

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.

Pull request overview

Adds an aggregate Bazel test suite and introduces a QNX CI workflow that builds/tests the repository using a reusable QNX pipeline, including a credential helper for authenticating to qnx.com during Bazel fetch/build operations.

Changes:

  • Add a new all_tests Bazel test_suite aggregating existing test suites.
  • Add a new GitHub Actions workflow for QNX builds/tests (x86_64-qnx and aarch64-qnx).
  • Add a Python credential helper script to acquire and provide QNX session cookies to Bazel.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
tests/BUILD Adds an aggregate all_tests suite combining existing test categories.
.github/workflows/qnx.yml Introduces a QNX CI workflow using a reusable QNX build workflow with matrix configs.
.github/tools/qnx_credential_helper.py Adds a credential helper that logs into qnx.com and emits a cookie header for Bazel.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/qnx.yml
Comment thread .github/workflows/qnx.yml Outdated
Comment on lines +42 to +46
bazel-target: "//:all_tests"
bazel-config: ${{ matrix.bazel-config }}
bazel-test-target: ${{ matrix.bazel-test-target }}
credential-helper: ".github/tools/qnx_credential_helper.py"
bazel-disk-cache: ${{ matrix.bazel-config }}
Comment on lines +30 to +34
data = json.load(sys.stdin)

if "qnx.com" not in data["uri"]:
eprint("Unsupported domain")
sys.exit(1)
Comment on lines +62 to +65
r = urllib.request.urlopen("https://www.qnx.com/account/login.html", data)
if r.status != 200:
eprint("Failed to login to QNX")
sys.exit(1)
@nradakovic
nradakovic force-pushed the nira_add_qnx_ci branch 16 times, most recently from 42fb152 to 0a38d07 Compare July 17, 2026 09:05
@nradakovic nradakovic changed the title Temp commit 1 Add QNX build and test workflow with emulated execution Jul 17, 2026
@nradakovic nradakovic moved this from Backlog to In Progress in S-CORE Roadmap Jul 17, 2026
@nradakovic
nradakovic requested a review from Copilot July 17, 2026 09:16

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.

Pull request overview

Copilot reviewed 7 out of 8 changed files in this pull request and generated 3 comments.

Comment thread .github/tools/qnx_credential_helper.py
Comment thread .github/tools/qnx_credential_helper.py
Comment thread .github/workflows/qnx.yml Outdated
Add a GitHub Actions workflow that builds and tests the x86_64-qnx and
aarch64-qnx configs, running QNX binaries under QEMU emulation.

- Add qnx.yml workflow and qnx_credential_helper.py for package auth.
- Configure tests/.bazelrc: ImageFS toolchains, --run_under QNX emulator,
  and --test_lang_filters=cc for QNX configs.
- Add :all_tests aggregate suite in tests/BUILD.
- Update MODULE.bazel: add score_qnx_unit_tests and score_rules_imagefs
  dev deps, bump bazel_skylib to 1.9.0, move aarch64 QNX SDP to 8.0.4.
- Make feature tests QNX-portable (skip Linux-only fully_static_link_test,
  drop redundant -lpthread, handle PIE base in user_link_flags_test).
@nradakovic
nradakovic merged commit b91ee4a into main Jul 17, 2026
14 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in S-CORE Roadmap Jul 17, 2026
@github-project-automation github-project-automation Bot moved this from In Progress to Done in INF - Infrastructure Community Jul 17, 2026
@nradakovic
nradakovic deleted the nira_add_qnx_ci branch July 17, 2026 10:38
@nradakovic nradakovic linked an issue Jul 17, 2026 that may be closed by this pull request
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automation p3 Medium/Low - handle it within normal process unit test Add or update unit tests wip Work in progress

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add QNX test execution on CI

3 participants