Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/
common --registry=https://bcr.bazel.build
common --credential_helper=*.qnx.com=%workspace%/integration/scripts/qnx_credential_helper.py


# Flags needed by score_baselibs and communication modules.
Expand Down Expand Up @@ -44,6 +45,26 @@ build:x86_64-linux --platforms=@score_bazel_platforms//:x86_64-linux-gcc_12.2.0-
build:x86_64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu
build:x86_64-linux --features=-treat_warnings_as_errors # due to baselibs deprecations

build:arm64-linux --config=shared
build:arm64-linux --platforms=@score_bazel_platforms//:aarch64-linux-gcc_12.2.0-posix
build:arm64-linux --features=-treat_warnings_as_errors # due to baselibs deprecations

build:x86_64-qnx8_0 --sandbox_writable_path=/var/tmp
build:x86_64-qnx8_0 --config=shared
build:x86_64-qnx8_0 --platforms=@score_bazel_platforms//:x86_64-qnx8_0
build:x86_64-qnx8_0 --extra_toolchains=@score_qcc_x86_64_toolchain//:x86_64-qnx-sdp_8.0.0-posix
build:x86_64-qnx8_0 --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_pc_nto_qnx800
build:x86_64-qnx8_0 --define=config=build_qnx8 # for lifecycle


build:arm64-qnx8_0 --sandbox_writable_path=/var/tmp
build:arm64-qnx8_0 --config=shared
build:arm64-qnx8_0 --platforms=@score_bazel_platforms//:arm64-qnx8_0
build:arm64-qnx8_0 --extra_toolchains=@score_qcc_aarch64_toolchain//:aarch64-qnx-sdp_8.0.0-posix
Comment on lines +62 to +63
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

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

This config mixes "arm64" (platform name) with "aarch64" (toolchain name). If your repo treats these as synonyms that’s fine, but it would be clearer to align naming (e.g., use a consistent arm64/aarch64 convention for both platform and toolchain labels) to reduce confusion when adding more QNX variants.

Copilot uses AI. Check for mistakes.
build:arm64-qnx8_0 --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_nto_qnx800
build:arm64-qnx8_0 --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu
build:arm64-qnx8_0 --define=config=build_qnx8 # for lifecycle

# this is deprecated, use build:x86_64-linux instead
build:_bl_common --host_platform=@score_bazel_platforms//:x86_64-linux

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ on:
- main
merge_group:
types: [checks_requested]
release:
types: [created]

jobs:
build-docs:
Expand Down
37 changes: 36 additions & 1 deletion .github/workflows/reusable_integration-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,15 @@ on:
REPO_READ_TOKEN:
description: 'GitHub token with read access to the score modules. Defaults to github.token'
required: false
SCORE_QNX_LICENSE:
description: 'Base64-encoded QNX license file for QNX builds.'
required: false
SCORE_QNX_USER:
description: 'Username for QNX license server authentication.'
required: false
SCORE_QNX_PASSWORD:
description: 'Password for QNX license server authentication.'
required: false
inputs:
known_good:
description: 'Content of the known_good.json file to use for the integration test.'
Expand All @@ -81,7 +90,7 @@ env:

jobs:
integration-test:
name: Integration Test
name: Integration Test ${{ inputs.config }}
runs-on: ${{ inputs.repo_runner_labels != '' && (startsWith(inputs.repo_runner_labels, '[') && fromJSON(inputs.repo_runner_labels) || inputs.repo_runner_labels) || 'ubuntu-latest' }}
steps:
- name: Clean disk space
Expand All @@ -102,6 +111,30 @@ jobs:
disk-cache: ${{ inputs.config }}
# Share repository cache between workflows.
repository-cache: true
- name: Prepare QNX license
if: contains(inputs.config, 'qnx')
env:
SCORE_QNX_LICENSE: ${{ secrets.SCORE_QNX_LICENSE }}
SCORE_QNX_USER: ${{ secrets.SCORE_QNX_USER }}
SCORE_QNX_PASSWORD: ${{ secrets.SCORE_QNX_PASSWORD }}
run: |
set -euo pipefail
if [ -z "${SCORE_QNX_LICENSE}" ]; then
echo "SCORE_QNX_LICENSE secret is not set. QNX builds will fail without a valid license."
exit 1
fi
if [ -z "${SCORE_QNX_USER}" ]; then
echo "SCORE_QNX_USER secret is not set. QNX builds will fail without authentication."
exit 1
fi
if [ -z "${SCORE_QNX_PASSWORD}" ]; then
echo "SCORE_QNX_PASSWORD secret is not set. QNX builds will fail without authentication."
exit 1
fi

LICENSE_DIR="/opt/score_qnx/license"
sudo mkdir -p "${LICENSE_DIR}"
echo "${SCORE_QNX_LICENSE}" | base64 --decode | sudo tee "${LICENSE_DIR}/licenses" >/dev/null
- name: Update known good commits
run: |
echo "::group::write known_good.json from input"
Expand All @@ -123,6 +156,8 @@ jobs:
python3 scripts/integration_test.py --known-good known_good.updated.json --config "${{ inputs.config }}"
env:
GITHUB_TOKEN: ${{ secrets.REPO_READ_TOKEN != '' && secrets.REPO_READ_TOKEN || github.token }}
SCORE_QNX_USER: ${{ secrets.SCORE_QNX_USER }}
SCORE_QNX_PASSWORD: ${{ secrets.SCORE_QNX_PASSWORD }}
- name: Upload logs artifact
if: always()
uses: actions/upload-artifact@v4
Expand Down
13 changes: 12 additions & 1 deletion .github/workflows/reusable_smoke-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,15 @@ on:
REPO_READ_TOKEN:
description: 'Token for reading repositories'
required: false
SCORE_QNX_LICENSE:
description: 'Base64-encoded QNX license file for QNX builds.'
required: false
SCORE_QNX_USER:
description: 'Username for QNX license server authentication.'
required: false
SCORE_QNX_PASSWORD:
description: 'Password for QNX license server authentication.'
required: false

env:
REFERENCE_INTEGRATION_REPO: ${{ vars.reference_integration_repo != '' && vars.reference_integration_repo || 'eclipse-score/reference_integration' }}
Expand Down Expand Up @@ -141,10 +150,12 @@ jobs:
- x86_64-linux
# - arm64-linux
# Add more configs here as needed
# - arm64-qnx8_0
- arm64-qnx8_0
# - x86_64-qnx8_0
uses: ./.github/workflows/reusable_integration-build.yml
secrets: inherit
# Skip QNX builds if secrets aren't available (e.g., from fork PRs)
if: ${{ !contains(matrix.config, 'qnx') || (secrets.SCORE_QNX_LICENSE != '' && secrets.SCORE_QNX_USER != '' && secrets.SCORE_QNX_PASSWORD != '') }}
with:
known_good: ${{ needs.preparation.outputs.known_good_updated }}
config: ${{ matrix.config }}
Expand Down
4 changes: 2 additions & 2 deletions score_toolchains.MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,10 @@ gcc.toolchain(
)
use_repo(
gcc,
"score_gcc_toolchain",
"score_gcc_aarch64_toolchain",
"score_gcc_x86_64_toolchain",
"score_qcc_aarch64_toolchain",
"score_qcc_x86_64_toolchain",
"score_qcc_aarch64_toolchain",
)


Expand Down