-
Notifications
You must be signed in to change notification settings - Fork 55
Introduce QNX CI job #121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Introduce QNX CI job #121
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
c27f7e1
Introduce QNX CI job
LittleHuba dd34b48
Add configuration for QNX on arm64
LittleHuba 73329a4
Do not fail fast in matrix builds
LittleHuba 65f3aea
Bump Clang to 19.1.0
LittleHuba d5b36d8
Test build for QNX8 on both architectures
LittleHuba 46172fc
Disable Rust build also on QNX8 arm64
LittleHuba 3622d3d
Clean runners to get more disk space
LittleHuba 6709ebb
Add TODO for tests on QNX
LittleHuba 6675111
Bump baselibs
LittleHuba 7c9fa02
cicd: add release workflow
PiotrKorkus 169090f
Adapt release workflow to use module infrastructure
LittleHuba 0f532ee
Rename Release Verification Workflow to Coverage Report Workflow
LittleHuba File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,82 @@ | ||
| # ******************************************************************************* | ||
| # Copyright (c) 2024 Contributors to the Eclipse Foundation | ||
| # | ||
| # See the NOTICE file(s) distributed with this work for additional | ||
| # information regarding copyright ownership. | ||
| # | ||
| # This program and the accompanying materials are made available under the | ||
| # terms of the Apache License Version 2.0 which is available at | ||
| # https://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
| # ******************************************************************************* | ||
|
|
||
| # Workflow configuration for S-CORE CI - Bazel Build & Test communication module for target platforms | ||
| # This workflow runs Bazel build and test for QNX when triggered by specific pull request events. | ||
|
|
||
| name: Bazel Build & Test communication module (target-platforms) | ||
| on: | ||
| pull_request: | ||
| types: [opened, reopened, synchronize] | ||
| merge_group: | ||
| types: [checks_requested] | ||
| release: | ||
| types: [created] | ||
| env: | ||
| LICENSE_DIR: "/opt/score_qnx/license" | ||
| jobs: | ||
| build_and_test_qnx: | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| bazel-config: ["qnx_x86_64", "qnx_arm64"] | ||
| include: | ||
| - bazel-config: "qnx_x86_64" | ||
| incompatible_targets: | ||
| - "-//score/mw/com/requirements/..." # Uninvestigated problem | ||
| - "-//score/mw/com/performance_benchmarks/..." # Uninvestigated problem | ||
| - "-//score/mw/com/example/..." # Missing Rust toolchain support for QNX8 on x86_64 | ||
| - "-//score/mw/com/impl/plumbing:sample_ptr_rs" # Missing Rust toolchain support for QNX8 on x86_64 | ||
| - "-//score/mw/com/impl/rust/..." # Missing Rust toolchain support for QNX8 on x86_64 | ||
| - bazel-config: "qnx_arm64" | ||
| incompatible_targets: | ||
| - "-//score/mw/com/requirements/..." # Uninvestigated problem | ||
| - "-//score/mw/com/performance_benchmarks/..." # Uninvestigated problem | ||
| - "-//score/mw/com/example/..." # Broken Rust toolchain for QNX8 on arm64 | ||
| - "-//score/mw/com/impl/plumbing:sample_ptr_rs" # Broken Rust toolchain for QNX8 on arm64 | ||
| - "-//score/mw/com/impl/rust/..." # Broken Rust toolchain for QNX8 on arm64 | ||
| # Starting with Ubuntu 24.04 apparmor breaks Bazels linux-sandbox: https://github.com/bazelbuild/bazel/issues/24081 | ||
| runs-on: ubuntu-22.04 | ||
| permissions: | ||
| contents: read | ||
| pull-requests: read | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4.2.2 | ||
| - name: Free Disk Space (Ubuntu) | ||
| uses: ./actions/free_disk_space | ||
| - name: Setup Bazel | ||
| uses: bazel-contrib/setup-bazel@0.15.0 | ||
| with: | ||
| bazelisk-cache: true | ||
| disk-cache: ${{ github.workflow }}-${{ matrix.bazel-config }} | ||
| repository-cache: true | ||
| - name: Setup QNX License | ||
| if: ${{ contains(matrix.bazel-config, 'qnx') }} | ||
| env: | ||
| SCORE_QNX_LICENSE: ${{ secrets.SCORE_QNX_LICENSE }} | ||
| run: | | ||
| set -euo pipefail | ||
|
|
||
| sudo mkdir -p "${{ env.LICENSE_DIR }}" | ||
| echo "${SCORE_QNX_LICENSE}" | base64 --decode | sudo tee "${{ env.LICENSE_DIR }}/licenses" >/dev/null | ||
| - name: Build targets | ||
| env: | ||
| SCORE_QNX_USER: ${{ secrets.SCORE_QNX_USER }} | ||
| SCORE_QNX_PASSWORD: ${{ secrets.SCORE_QNX_PASSWORD }} | ||
| run: | | ||
| bazel build --config ${{ matrix.bazel-config }} -- //score/... ${{ join(matrix.incompatible_targets, ' ') }} | ||
| - name: Cleanup QNX License | ||
| if: ${{ contains(matrix.bazel-config, 'qnx') && !cancelled() }} | ||
| run: sudo rm -rf ${{ env.LICENSE_DIR }} | ||
| # TODO Run tests on QNX QEMU | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,76 @@ | ||
| # ******************************************************************************* | ||
| # Copyright (c) 2025 Contributors to the Eclipse Foundation | ||
| # | ||
| # See the NOTICE file(s) distributed with this work for additional | ||
| # information regarding copyright ownership. | ||
| # | ||
| # This program and the accompanying materials are made available under the | ||
| # terms of the Apache License Version 2.0 which is available at | ||
| # https://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
| # ******************************************************************************* | ||
| name: Coverage Report | ||
|
|
||
| on: | ||
| release: | ||
| types: [ created ] | ||
|
|
||
| jobs: | ||
| coverage-report: | ||
| runs-on: ubuntu-22.04 | ||
| permissions: | ||
| contents: write # required to upload release assets | ||
|
|
||
| steps: | ||
| - name: Checkout Repository | ||
| uses: actions/checkout@v4.2.2 | ||
|
|
||
| - name: Free Disk Space (Ubuntu) | ||
| uses: ./actions/free_disk_space | ||
|
|
||
| - name: Install lcov | ||
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y lcov | ||
|
|
||
| - name: Setup Bazel with shared caching | ||
| uses: bazel-contrib/setup-bazel@0.15.0 | ||
| with: | ||
| bazelisk-cache: true | ||
| disk-cache: ${{ github.workflow }} | ||
| repository-cache: true | ||
|
|
||
| - name: Run Unit Test with Coverage for C++ | ||
| run: | | ||
| bazel coverage //... --build_tests_only | ||
|
|
||
| - name: Generate HTML Coverage Report | ||
| run: | | ||
| genhtml "$(bazel info output_path)/_coverage/_coverage_report.dat" \ | ||
| -o=cpp_coverage \ | ||
| --show-details \ | ||
| --legend \ | ||
| --function-coverage \ | ||
| --branch-coverage | ||
|
|
||
| - name: Create archive of test report | ||
| run: | | ||
| mkdir -p artifacts | ||
| find bazel-testlogs/score/ -name 'test.xml' -print0 | xargs -0 -I{} cp --parents {} artifacts/ | ||
| cp -r cpp_coverage artifacts/ | ||
| zip -r ${{ github.event.repository.name }}_coverage_report.zip artifacts/ | ||
| shell: bash | ||
|
|
||
| - name: Upload coverage artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: ${{ github.event.repository.name }}_coverage_report.zip | ||
| path: ${{ github.event.repository.name }}_coverage_report.zip | ||
|
|
||
| - name: Upload release asset (attach ZIP to GitHub Release) | ||
| uses: softprops/action-gh-release@v2.5.0 | ||
| with: | ||
| files: ${{ github.event.repository.name }}_coverage_report.zip | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| # ******************************************************************************* | ||
| # Copyright (c) 2024 Contributors to the Eclipse Foundation | ||
| # | ||
| # See the NOTICE file(s) distributed with this work for additional | ||
| # information regarding copyright ownership. | ||
| # | ||
| # This program and the accompanying materials are made available under the | ||
| # terms of the Apache License Version 2.0 which is available at | ||
| # https://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
| # ******************************************************************************* | ||
|
|
||
| name: "Free Disk Space" | ||
| description: "Configures and calls endersonmenezes/free-disk-space to free disk space" | ||
|
|
||
| branding: | ||
| icon: command | ||
| color: gray-dark | ||
|
|
||
| runs: | ||
| using: composite | ||
| steps: | ||
| - name: Free Disk Space (Ubuntu) | ||
| uses: endersonmenezes/free-disk-space@v3 | ||
| with: | ||
| remove_android: true | ||
| remove_dotnet: true | ||
| remove_haskell: true | ||
| remove_tool_cache: true | ||
| remove_swap: true | ||
| rm_cmd: "rmz" |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should this use reusable QNX8 workflow from https://github.com/eclipse-score/cicd-workflows ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately I can't use the upstream workflows for various reasons.
Though, I want to upstream fixes to cicd-workflows to slowly lift this restriction.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You mean you will create PRs to reusable workflows?