Skip to content

Commit 2f6fa1d

Browse files
committed
Cleanup workflows for rust
1 parent 578658f commit 2f6fa1d

21 files changed

Lines changed: 5545 additions & 420 deletions

.bazelrc

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ build --tool_java_runtime_version=remotejdk_17
2424
build --credential_helper="*.qnx.com=%workspace%/.github/tools/qnx_credential_helper.py"
2525
build --experimental_retain_test_configuration_across_testonly # needed for QNX tests until bazel update to 8.6.0. See https://github.com/bazelbuild/bazel/pull/28115
2626

27+
# Ferrocene must be common compiler for HOST. To ensure metadata compatibility for proc macro crates!
28+
common --extra_toolchains=@score_gcc_x86_64_toolchain//:x86_64-linux-gcc_12.2.0
29+
common --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu
30+
2731
build:_bl_stub --//score/json:base_library=nlohmann
2832
build:_bl_stub --//score/memory/shared/flags:use_typedshmd=False
2933

@@ -43,13 +47,15 @@ build:bl-x86_64-linux --config=_bl_stub
4347
build:bl-x86_64-linux --config=_bl_toolchain_common
4448
build:bl-x86_64-linux --platforms=@score_bazel_platforms//:x86_64-linux-gcc_12.2.0-posix
4549
build:bl-x86_64-linux --extra_toolchains=@score_gcc_x86_64_toolchain//:x86_64-linux-gcc_12.2.0
50+
build:bl-x86_64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu
4651
test:bl-x86_64-linux --config=_bl_common
4752

4853
# Target configuration for CPU:AArch64|OS:Linux build (do not use it in case of system toolchains!)
4954
build:bl-aarch64-linux --config=_bl_stub
5055
build:bl-aarch64-linux --config=_bl_toolchain_common
5156
build:bl-aarch64-linux --platforms=@score_bazel_platforms//:aarch64-linux-gcc_12.2.0-posix
5257
build:bl-aarch64-linux --extra_toolchains=@score_gcc_aarch64_toolchain//:aarch64-linux-gcc_12.2.0
58+
build:bl-aarch64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_linux_gnu
5359
test:bl-aarch64-linux --config=_bl_common
5460
test:bl-aarch64-linux --test_timeout=300
5561
test:bl-aarch64-linux --run_under=//:qemu_aarch64
@@ -61,6 +67,7 @@ build:bl-x86_64-qnx --config=_bl_toolchain_common
6167
build:bl-x86_64-qnx --platforms=@score_bazel_platforms//:x86_64-qnx-sdp_8.0.0-posix
6268
build:bl-x86_64-qnx --extra_toolchains=@score_qcc_x86_64_toolchain//:x86_64-qnx-sdp_8.0.0
6369
build:bl-x86_64-qnx --extra_toolchains=@score_qnx_x86_64_ifs_toolchain//:ifs-x86_64-qnx-sdp_8.0.0
70+
build:bl-x86_64-qnx --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_pc_nto_qnx800
6471
test:bl-x86_64-qnx --config=_bl_common
6572
test:bl-x86_64-qnx --run_under=@score_qnx_unit_tests//src:run_under_qnx
6673
test:bl-x86_64-qnx --test_tag_filters=
@@ -73,12 +80,29 @@ build:bl-aarch64-qnx --incompatible_strict_action_env
7380
build:bl-aarch64-qnx --platforms=@score_bazel_platforms//:aarch64-qnx-sdp_8.0.0-posix
7481
build:bl-aarch64-qnx --extra_toolchains=@score_qcc_aarch64_toolchain//:aarch64-qnx-sdp_8.0.0
7582
build:bl-aarch64-qnx --extra_toolchains=@score_qnx_aarch64_ifs_toolchain//:ifs-aarch64-qnx-sdp_8.0.0
83+
build:bl-aarch64-qnx --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_nto_qnx800
7684
test:bl-aarch64-qnx --config=_bl_common
7785
test:bl-aarch64-qnx --test_timeout=300
7886
test:bl-aarch64-qnx --run_under=@score_qnx_unit_tests//src:run_under_qnx
7987
test:bl-aarch64-qnx --test_tag_filters=
8088
test:bl-aarch64-qnx --test_lang_filters=cc,rust
8189

90+
# Ferrocene Rust coverage config
91+
build:ferrocene-coverage --@rules_rust//rust/settings:extra_rustc_flag=-Cinstrument-coverage
92+
build:ferrocene-coverage --@rules_rust//rust/settings:extra_rustc_flag=-Clink-dead-code
93+
build:ferrocene-coverage --@rules_rust//rust/settings:extra_rustc_flag=-Ccodegen-units=1
94+
build:ferrocene-coverage --@rules_rust//rust/settings:extra_rustc_flag=-Cdebuginfo=2
95+
build:ferrocene-coverage --@rules_rust//rust/settings:extra_exec_rustc_flag=-Cinstrument-coverage
96+
build:ferrocene-coverage --@rules_rust//rust/settings:extra_exec_rustc_flag=-Clink-dead-code
97+
build:ferrocene-coverage --@rules_rust//rust/settings:extra_exec_rustc_flag=-Ccodegen-units=1
98+
build:ferrocene-coverage --@rules_rust//rust/settings:extra_exec_rustc_flag=-Cdebuginfo=2
99+
test:ferrocene-coverage --run_under=@score_tooling//coverage:llvm_profile_wrapper
100+
101+
# Clippy linting for Rust
102+
build --aspects=@score_rust_policies//clippy:linters.bzl%clippy_strict
103+
build --output_groups=+rules_lint_human
104+
build:lint --@aspect_rules_lint//lint:fail_on_violation=true
105+
82106
# Coverage configuration for C++
83107
coverage --features=coverage
84108
coverage --combined_report=lcov
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# *******************************************************************************
2+
# Copyright (c) 2026 Contributors to the Eclipse Foundation
3+
#
4+
# See the NOTICE file(s) distributed with this work for additional
5+
# information regarding copyright ownership.
6+
#
7+
# This program and the accompanying materials are made available under the
8+
# terms of the Apache License Version 2.0 which is available at
9+
# https://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# SPDX-License-Identifier: Apache-2.0
12+
# *******************************************************************************
13+
name: 'Setup Rust Build Environment'
14+
description: 'Checks out code, installs protoc, and caches cargo dependencies'
15+
inputs:
16+
repo-token:
17+
description: 'GitHub token for protoc downloads'
18+
required: true
19+
runs:
20+
using: "composite"
21+
steps:
22+
- name: Checkout Repository
23+
uses: actions/checkout@v4
24+
- name: Install protoc 26.1
25+
uses: arduino/setup-protoc@v3
26+
with:
27+
version: 26.1
28+
repo-token: ${{ inputs.repo-token }}
29+
- name: Cache cargo & target
30+
uses: actions/cache@v3
31+
with:
32+
path: |
33+
~/.cargo/registry
34+
~/.cargo/git
35+
target
36+
~/.cargo/bin
37+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
38+
restore-keys: |
39+
${{ runner.os }}-cargo-
40+
- name: Install cargo-tarpaulin if not already installed
41+
run: |
42+
if ! command -v cargo-tarpaulin > /dev/null; then
43+
cargo install cargo-tarpaulin --version 0.32.7 --locked
44+
else
45+
echo "cargo-tarpaulin is already installed"
46+
fi
47+
shell: bash

.github/workflows/build.yml

Lines changed: 0 additions & 71 deletions
This file was deleted.

.github/workflows/build_linux.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,17 @@ jobs:
3131
matrix:
3232
include:
3333
- bazel-config: bl-x86_64-linux
34-
bazel-build-target: "//score/..."
34+
bazel-build-target: "//score/... //src/..."
3535
bazel-test-target: >-
3636
//score/...
37+
//src/...
3738
-//score/language/safecpp/aborts_upon_exception:abortsuponexception_toolchain_test
3839
bazel-test-extra-flags: ""
3940
- bazel-config: bl-aarch64-linux
40-
bazel-build-target: "//score/..."
41+
bazel-build-target: "//score/... //src/..."
4142
bazel-test-target: >-
4243
//score/...
44+
//src/...
4345
-//score/language/safecpp/aborts_upon_exception:abortsuponexception_toolchain_test
4446
-//score/os/test:acl_test
4547
-//score/os/test:errno_test

.github/workflows/build_qnx.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ jobs:
3030
- bazel-config: bl-x86_64-qnx
3131
bazel-test-target: >-
3232
//score/...
33+
//src/...
3334
-//score/language/futurecpp/tests:memory_resource_test
3435
-//score/language/futurecpp/tests:zip_iterator_test
3536
-//score/language/safecpp/aborts_upon_exception:abortsuponexception_toolchain_test
@@ -40,6 +41,7 @@ jobs:
4041
- bazel-config: bl-aarch64-qnx
4142
bazel-test-target: >-
4243
//score/...
44+
//src/...
4345
-//score/language/futurecpp/tests:memory_resource_test
4446
-//score/language/safecpp/aborts_upon_exception:abortsuponexception_toolchain_test
4547
-//score/memory/shared:shared_memory_factory_test
@@ -51,7 +53,7 @@ jobs:
5153
contents: read
5254
pull-requests: read
5355
with:
54-
bazel-target: "//score/..."
56+
bazel-target: "//score/... //src/..."
5557
bazel-config: ${{ matrix.bazel-config }}
5658
bazel-test-target: ${{ matrix.bazel-test-target }}
5759
credential-helper: ".github/tools/qnx_credential_helper.py"

.github/workflows/build_qnx8.yml

Lines changed: 0 additions & 37 deletions
This file was deleted.

.github/workflows/bzlmod-lock.yml

Lines changed: 0 additions & 26 deletions
This file was deleted.

.github/workflows/cargo_required.yml

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,16 @@
1010
#
1111
# SPDX-License-Identifier: Apache-2.0
1212
# *******************************************************************************
13-
1413
name: cargo build, test, coverage and miri report
15-
1614
on:
1715
push:
1816
branches: [main, development]
1917
pull_request:
2018
branches: [main, development]
2119
types: [opened, ready_for_review, reopened, synchronize]
22-
2320
env:
2421
CARGO_TERM_COLOR: always
2522
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26-
2723
jobs:
2824
cargo-checks:
2925
#permissions for docs deployment
@@ -36,26 +32,21 @@ jobs:
3632
steps:
3733
- name: Checkout Repository
3834
uses: actions/checkout@v4
39-
4035
- name: Setup Rust Build Environment
4136
uses: ./.github/actions/setup-rust-build
4237
with:
4338
repo-token: ${{ secrets.GITHUB_TOKEN }}
44-
4539
# ---------- BUILD ----------
4640
- name: Cargo build
4741
run: cargo build --verbose
48-
4942
# ---------- TARPAULIN(TEST + COVERAGE) ----------
5043
- name: Run tests under coverage
5144
run: cargo +nightly tarpaulin --version 0.32.7 --skip-clean --out Html --verbose --no-dead-code --engine llvm --all-features
52-
5345
- name: Upload coverage report
5446
uses: actions/upload-artifact@v4
5547
with:
5648
name: coverage-report
5749
path: tarpaulin-report.html
58-
5950
# ---------- MIRI ----------
6051
- name: Install nightly + miri (minimal profile)
6152
uses: actions-rs/toolchain@v1
@@ -65,21 +56,17 @@ jobs:
6556
profile: minimal
6657
components: miri
6758
override: true
68-
6959
- name: Prefetch crates for nightly
7060
if: github.event.pull_request.draft == false
7161
run: cargo +nightly-2025-12-15 fetch --locked
72-
7362
- name: Purge Miri artifacts
7463
if: github.event.pull_request.draft == false
7564
run: |
7665
rm -rf target/miri
7766
rm -rf ~/.cache/miri
78-
7967
- name: Prefetch and build dependencies for Miri
8068
if: github.event.pull_request.draft == false
8169
run: cargo +nightly-2025-12-15 miri setup
82-
8370
- name: Run Miri and save report
8471
if: github.event.pull_request.draft == false
8572
env:

.github/workflows/copyright.yml

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# *******************************************************************************
2-
# Copyright (c) 2025 Contributors to the Eclipse Foundation
2+
# Copyright (c) 2026 Contributors to the Eclipse Foundation
33
#
44
# See the NOTICE file(s) distributed with this work for additional
55
# information regarding copyright ownership.
@@ -10,18 +10,14 @@
1010
#
1111
# SPDX-License-Identifier: Apache-2.0
1212
# *******************************************************************************
13-
1413
name: Copyright checks
14+
permissions:
15+
contents: read
1516
on:
1617
pull_request:
1718
types: [opened, reopened, synchronize]
1819
merge_group:
1920
types: [checks_requested]
20-
env:
21-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22-
2321
jobs:
2422
copyright-check:
25-
uses: eclipse-score/cicd-workflows/.github/workflows/copyright.yml@main
26-
with:
27-
bazel-target: "run --lockfile_mode=error //:copyright.check"
23+
uses: eclipse-score/cicd-workflows/.github/workflows/copyright.yml@af347722c7ae3ed85518895c11268d96ac728f62

0 commit comments

Comments
 (0)