From 767b24e021c5aecc6099939083fdbb1cb1245f00 Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sat, 7 Feb 2026 13:03:06 +0900 Subject: [PATCH 01/17] ci: run standard tests in PR workflows --- .github/workflows/bundled-lint-and-test.yaml | 33 ++----------------- .../workflows/unbundled-lint-and-test.yaml | 32 ++---------------- 2 files changed, 4 insertions(+), 61 deletions(-) diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index 7c62c513..85b1e047 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -140,42 +140,14 @@ jobs: run: | echo "cache_key: ${{ env.CACHE_KEY }}" - - name: Install dependencies - run: | - cargo install cargo-tarpaulin - name: Show toolchain information working-directory: ${{github.workspace}} run: | rustup toolchain list cargo --version - - name: Run tests and report code coverage + - name: Run tests run: | - # enable nightly features so that we can also include Doctests - LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib RUSTC_BOOTSTRAP=1 cargo tarpaulin -o xml -o lcov -o html --doc --tests -- --test-threads 1 - - - name: Upload coverage report (xml) - uses: actions/upload-artifact@v4 - with: - name: Test Coverage Results (xml) - path: cobertura.xml - - - name: Upload coverage report (lcov) - uses: actions/upload-artifact@v4 - with: - name: Test Coverage Results (lcov) - path: lcov.info - - - name: Upload coverage report (html) - uses: actions/upload-artifact@v4 - with: - name: Test Coverage Results (html) - path: tarpaulin-report.html - - # - name: Upload coverage report - # uses: actions/upload-artifact@v4 - # with: - # name: Code coverage report - # path: cobertura.xml + LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib cargo test --doc --tests -- --test-threads 1 build-docs: name: Build documentation @@ -212,4 +184,3 @@ jobs: - name: Create Documentation for up-linux-streamer working-directory: ${{github.workspace}} run: RUSTDOCFLAGS=-Dwarnings cargo doc -p up-linux-streamer --no-deps - diff --git a/.github/workflows/unbundled-lint-and-test.yaml b/.github/workflows/unbundled-lint-and-test.yaml index 6de4f944..f8a7fa8d 100644 --- a/.github/workflows/unbundled-lint-and-test.yaml +++ b/.github/workflows/unbundled-lint-and-test.yaml @@ -255,42 +255,14 @@ jobs: restore-keys: | ${{ runner.os }}-vsomeip- - - name: Install dependencies - run: | - cargo install cargo-tarpaulin - name: Show toolchain information working-directory: ${{github.workspace}} run: | rustup toolchain list cargo --version - - name: Run tests and report code coverage + - name: Run tests run: | - # enable nightly features so that we can also include Doctests - LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib RUSTC_BOOTSTRAP=1 cargo tarpaulin --no-default-features -o xml -o lcov -o html --doc --tests -- --test-threads 1 - - - name: Upload coverage report (xml) - uses: actions/upload-artifact@v4 - with: - name: Test Coverage Results (xml) - path: cobertura.xml - - - name: Upload coverage report (lcov) - uses: actions/upload-artifact@v4 - with: - name: Test Coverage Results (lcov) - path: lcov.info - - - name: Upload coverage report (html) - uses: actions/upload-artifact@v4 - with: - name: Test Coverage Results (html) - path: tarpaulin-report.html - - # - name: Upload coverage report - # uses: actions/upload-artifact@v4 - # with: - # name: Code coverage report - # path: cobertura.xml + LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib cargo test --no-default-features --doc --tests -- --test-threads 1 build-docs: name: Build documentation From d252d53d6a3a00169ff258de04ad0eb32ca4b6ce Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sat, 7 Feb 2026 13:03:54 +0900 Subject: [PATCH 02/17] ci: add nightly coverage workflow --- .github/workflows/nightly-coverage.yaml | 105 ++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 .github/workflows/nightly-coverage.yaml diff --git a/.github/workflows/nightly-coverage.yaml b/.github/workflows/nightly-coverage.yaml new file mode 100644 index 00000000..6244fd92 --- /dev/null +++ b/.github/workflows/nightly-coverage.yaml @@ -0,0 +1,105 @@ +# ******************************************************************************** +# 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: Nightly Coverage + +env: + VSOMEIP_INSTALL_PATH: vsomeip-install + +on: + schedule: + - cron: "0 3 * * *" + workflow_dispatch: + push: + branches: [ main ] + +concurrency: + group: ${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + set-env: + name: Set environment variables + runs-on: ubuntu-22.04 + + outputs: + arch_specific_cpp_stdlib_path: ${{ steps.set_env.outputs.arch_specific_cpp_stdlib_path }} + generic_cpp_stdlib_path: ${{ steps.set_env.outputs.generic_cpp_stdlib_path }} + + steps: + - uses: actions/checkout@v4 + + - name: Add execute permissions for envsetup + run: chmod +x build/envsetup.sh + + - name: Set stdlib paths dynamically + id: set_env + run: | + source ./build/envsetup.sh highest + echo "arch_specific_cpp_stdlib_path=$ARCH_SPECIFIC_CPP_STDLIB_PATH" >> $GITHUB_OUTPUT + echo "generic_cpp_stdlib_path=$GENERIC_CPP_STDLIB_PATH" >> $GITHUB_OUTPUT + + coverage: + name: Coverage + runs-on: ubuntu-22.04 + needs: set-env + + env: + ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }} + GENERIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.generic_cpp_stdlib_path }} + + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + + - name: Install C++ dependencies + run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev + + - name: Set environment variables + run: | + echo "VSOMEIP_INSTALL_PATH=${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" >> $GITHUB_ENV + + - name: Ensure vsomeip install path exists + run: | + mkdir -p ${{ env.VSOMEIP_INSTALL_PATH }} + + - name: Install dependencies + run: cargo install cargo-tarpaulin + + - name: Show toolchain information + working-directory: ${{github.workspace}} + run: | + rustup toolchain list + cargo --version + + - name: Run tests and report code coverage + run: | + LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib RUSTC_BOOTSTRAP=1 cargo tarpaulin -o xml -o lcov -o html --doc --tests -- --test-threads 1 + + - name: Upload coverage report (xml) + uses: actions/upload-artifact@v4 + with: + name: Test Coverage Results (xml) + path: cobertura.xml + + - name: Upload coverage report (lcov) + uses: actions/upload-artifact@v4 + with: + name: Test Coverage Results (lcov) + path: lcov.info + + - name: Upload coverage report (html) + uses: actions/upload-artifact@v4 + with: + name: Test Coverage Results (html) + path: tarpaulin-report.html From 164fed03823ce3bd2115d224f89aca2735b7260f Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sat, 7 Feb 2026 13:04:17 +0900 Subject: [PATCH 03/17] ci: deduplicate unbundled lint validation --- .github/workflows/unbundled-lint-and-test.yaml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/unbundled-lint-and-test.yaml b/.github/workflows/unbundled-lint-and-test.yaml index f8a7fa8d..23e04c77 100644 --- a/.github/workflows/unbundled-lint-and-test.yaml +++ b/.github/workflows/unbundled-lint-and-test.yaml @@ -192,21 +192,12 @@ jobs: rustup show rustup component add rustfmt clippy - - name: Build the project without Zenoh & vsomeip transports - working-directory: ${{github.workspace}} - run: cargo build - - name: cargo clippy without Zenoh & vsomeip transports - working-directory: ${{github.workspace}} - run: cargo clippy --all-targets -- -W warnings -D warnings - name: Build the project with Zenoh & vsomeip transports (and thus streamer references) working-directory: ${{github.workspace}} run: cargo build --features vsomeip-transport,zenoh-transport,mqtt-transport - name: cargo clippy with Zenoh & vsomeip transports (and thus streamer references) working-directory: ${{github.workspace}} run: cargo clippy --features vsomeip-transport,zenoh-transport,mqtt-transport --all-targets -- -W warnings -D warnings - - name: cargo fmt - working-directory: ${{github.workspace}} - run: cargo fmt -- --check test: name: Test From eecdc499b186fbcaacea6c6f13cb16912ccb7588 Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sat, 7 Feb 2026 13:04:54 +0900 Subject: [PATCH 04/17] ci: add Rust caches to compile-heavy jobs --- .github/workflows/bundled-lint-and-test.yaml | 9 +++++++++ .github/workflows/unbundled-lint-and-test.yaml | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index 85b1e047..8bae64fb 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -91,6 +91,9 @@ jobs: rustup show rustup component add rustfmt clippy + - name: Cache Rust dependencies and build outputs + uses: swatinem/rust-cache@v2 + - name: Build the project without Zenoh & vsomeip transports working-directory: ${{github.workspace}} run: cargo build @@ -120,6 +123,9 @@ jobs: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable + - name: Cache Rust dependencies and build outputs + uses: swatinem/rust-cache@v2 + - name: Install C++ dependencies run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev @@ -161,6 +167,9 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Cache Rust dependencies and build outputs + uses: swatinem/rust-cache@v2 + - name: Install C++ dependencies run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev diff --git a/.github/workflows/unbundled-lint-and-test.yaml b/.github/workflows/unbundled-lint-and-test.yaml index 23e04c77..b361382e 100644 --- a/.github/workflows/unbundled-lint-and-test.yaml +++ b/.github/workflows/unbundled-lint-and-test.yaml @@ -192,6 +192,9 @@ jobs: rustup show rustup component add rustfmt clippy + - name: Cache Rust dependencies and build outputs + uses: swatinem/rust-cache@v2 + - name: Build the project with Zenoh & vsomeip transports (and thus streamer references) working-directory: ${{github.workspace}} run: cargo build --features vsomeip-transport,zenoh-transport,mqtt-transport @@ -246,6 +249,9 @@ jobs: restore-keys: | ${{ runner.os }}-vsomeip- + - name: Cache Rust dependencies and build outputs + uses: swatinem/rust-cache@v2 + - name: Show toolchain information working-directory: ${{github.workspace}} run: | @@ -297,6 +303,9 @@ jobs: restore-keys: | ${{ runner.os }}-vsomeip- + - name: Cache Rust dependencies and build outputs + uses: swatinem/rust-cache@v2 + - name: Create Documentation for up-streamer working-directory: ${{github.workspace}} run: RUSTDOCFLAGS=-Dwarnings cargo doc -p up-streamer --no-deps --no-default-features From 300d3ccaaa96b3e5c7ada98943d9e08ce84ca754 Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sat, 7 Feb 2026 13:21:27 +0900 Subject: [PATCH 05/17] ci: split doctest and test invocations in PR jobs --- .github/workflows/bundled-lint-and-test.yaml | 3 ++- .github/workflows/unbundled-lint-and-test.yaml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index 8bae64fb..bb8b7caf 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -153,7 +153,8 @@ jobs: cargo --version - name: Run tests run: | - LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib cargo test --doc --tests -- --test-threads 1 + LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib cargo test --doc + LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib cargo test --tests -- --test-threads 1 build-docs: name: Build documentation diff --git a/.github/workflows/unbundled-lint-and-test.yaml b/.github/workflows/unbundled-lint-and-test.yaml index b361382e..5dcf9ede 100644 --- a/.github/workflows/unbundled-lint-and-test.yaml +++ b/.github/workflows/unbundled-lint-and-test.yaml @@ -259,7 +259,8 @@ jobs: cargo --version - name: Run tests run: | - LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib cargo test --no-default-features --doc --tests -- --test-threads 1 + LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib cargo test --no-default-features --doc + LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib cargo test --no-default-features --tests -- --test-threads 1 build-docs: name: Build documentation From 4cbf2ab8ed9cd38f060ff3509d6c7e5f90def2a0 Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sat, 7 Feb 2026 13:58:23 +0900 Subject: [PATCH 06/17] ci: isolate rust cache keys and enforce lint-only writes --- .github/workflows/bundled-lint-and-test.yaml | 9 +++++++++ .github/workflows/unbundled-lint-and-test.yaml | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index bb8b7caf..db7300f1 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -93,6 +93,9 @@ jobs: - name: Cache Rust dependencies and build outputs uses: swatinem/rust-cache@v2 + with: + shared-key: ${{ github.workflow }}-${{ github.ref }} + save-if: ${{ github.job == 'lint' }} - name: Build the project without Zenoh & vsomeip transports working-directory: ${{github.workspace}} @@ -125,6 +128,9 @@ jobs: - name: Cache Rust dependencies and build outputs uses: swatinem/rust-cache@v2 + with: + shared-key: ${{ github.workflow }}-${{ github.ref }} + save-if: ${{ github.job == 'lint' }} - name: Install C++ dependencies run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev @@ -170,6 +176,9 @@ jobs: - name: Cache Rust dependencies and build outputs uses: swatinem/rust-cache@v2 + with: + shared-key: ${{ github.workflow }}-${{ github.ref }} + save-if: ${{ github.job == 'lint' }} - name: Install C++ dependencies run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev diff --git a/.github/workflows/unbundled-lint-and-test.yaml b/.github/workflows/unbundled-lint-and-test.yaml index 5dcf9ede..9495021a 100644 --- a/.github/workflows/unbundled-lint-and-test.yaml +++ b/.github/workflows/unbundled-lint-and-test.yaml @@ -194,6 +194,9 @@ jobs: - name: Cache Rust dependencies and build outputs uses: swatinem/rust-cache@v2 + with: + shared-key: ${{ github.workflow }}-${{ github.ref }} + save-if: ${{ github.job == 'lint' }} - name: Build the project with Zenoh & vsomeip transports (and thus streamer references) working-directory: ${{github.workspace}} @@ -251,6 +254,9 @@ jobs: - name: Cache Rust dependencies and build outputs uses: swatinem/rust-cache@v2 + with: + shared-key: ${{ github.workflow }}-${{ github.ref }} + save-if: ${{ github.job == 'lint' }} - name: Show toolchain information working-directory: ${{github.workspace}} @@ -306,6 +312,9 @@ jobs: - name: Cache Rust dependencies and build outputs uses: swatinem/rust-cache@v2 + with: + shared-key: ${{ github.workflow }}-${{ github.ref }} + save-if: ${{ github.job == 'lint' }} - name: Create Documentation for up-streamer working-directory: ${{github.workspace}} From 263866f48fa065a76f4dff3cd6168f609b1252c4 Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sat, 7 Feb 2026 22:56:19 +0900 Subject: [PATCH 07/17] ci: add manual cargo timings profiling workflow --- .github/workflows/cargo-timings-profile.yaml | 214 +++++++++++++++++++ 1 file changed, 214 insertions(+) create mode 100644 .github/workflows/cargo-timings-profile.yaml diff --git a/.github/workflows/cargo-timings-profile.yaml b/.github/workflows/cargo-timings-profile.yaml new file mode 100644 index 00000000..ea525d97 --- /dev/null +++ b/.github/workflows/cargo-timings-profile.yaml @@ -0,0 +1,214 @@ +# ******************************************************************************** +# Copyright (c) 2026 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: Cargo Timings Profile + +env: + VSOMEIP_RELEASE_URL: https://github.com/COVESA/vsomeip/archive/refs/tags/ + VSOMEIP_RELEASE_TAG: 3.4.10.tar.gz + VSOMEIP_SOURCE_PATH: vsomeip-src + VSOMEIP_INSTALL_PATH: vsomeip-install + +on: + workflow_dispatch: + +concurrency: + group: ${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + set-env: + name: Set environment variables + runs-on: ubuntu-22.04 + + outputs: + arch_specific_cpp_stdlib_path: ${{ steps.set_env.outputs.arch_specific_cpp_stdlib_path }} + generic_cpp_stdlib_path: ${{ steps.set_env.outputs.generic_cpp_stdlib_path }} + + steps: + - uses: actions/checkout@v4 + + - name: Add execute permissions for envsetup + run: chmod +x build/envsetup.sh + + - name: Set stdlib paths dynamically + id: set_env + run: | + source ./build/envsetup.sh highest + echo "arch_specific_cpp_stdlib_path=$ARCH_SPECIFIC_CPP_STDLIB_PATH" >> $GITHUB_OUTPUT + echo "generic_cpp_stdlib_path=$GENERIC_CPP_STDLIB_PATH" >> $GITHUB_OUTPUT + + obtain_and_build_vsomeip: + name: obtain_and_build_vsomeip + needs: set-env + runs-on: ubuntu-22.04 + + outputs: + cache_key: ${{ steps.generate_cache_key.outputs.CACHE_KEY }} + + env: + ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }} + GENERIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.generic_cpp_stdlib_path }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set environment variables + run: | + echo "VSOMEIP_SOURCE_TARBALL=${{ env.VSOMEIP_RELEASE_URL }}${{ env.VSOMEIP_RELEASE_TAG }}" >> $GITHUB_ENV + echo "VSOMEIP_SOURCE_PATH=${{ github.workspace }}/${{ env.VSOMEIP_SOURCE_PATH }}" >> $GITHUB_ENV + echo "VSOMEIP_INSTALL_PATH=${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" >> $GITHUB_ENV + echo "VSOMEIP_SOURCE_PATH_WITH_WILDCARD=${{ github.workspace }}/${{ env.VSOMEIP_SOURCE_PATH }}/*" >> $GITHUB_ENV + + - name: Download tarball + run: wget -O vsomeip-source.tar.gz "$VSOMEIP_SOURCE_TARBALL" + + - name: Create destination directory + run: mkdir -p "$VSOMEIP_SOURCE_PATH" + + - name: Decompress tarball + run: tar --strip-components=1 -xzf vsomeip-source.tar.gz -C "$VSOMEIP_SOURCE_PATH" + + - name: Generate cache key + run: echo "CACHE_KEY=${{ runner.os }}-vsomeip-${{ hashFiles(env.VSOMEIP_SOURCE_PATH_WITH_WILDCARD) }}" >> $GITHUB_ENV + + - name: Set cache key output + id: generate_cache_key + run: echo "CACHE_KEY=${{ env.CACHE_KEY }}" >> $GITHUB_OUTPUT + + - name: Cache vsomeip build + id: cache-vsomeip + uses: actions/cache@v3 + with: + path: ${{ env.VSOMEIP_INSTALL_PATH }} + key: ${{ runner.os }}-vsomeip-${{ hashFiles(env.VSOMEIP_SOURCE_PATH_WITH_WILDCARD) }} + restore-keys: | + ${{ runner.os }}-vsomeip- + + - name: Install dependencies + if: steps.cache-vsomeip.outputs.cache-hit != 'true' + run: sudo apt-get update && sudo apt-get install -y build-essential cmake libboost-all-dev doxygen asciidoc + + - name: Build vsomeip + if: steps.cache-vsomeip.outputs.cache-hit != 'true' + run: | + cmake -B"$VSOMEIP_SOURCE_PATH/build" -DCMAKE_INSTALL_PREFIX="$VSOMEIP_INSTALL_PATH" -DENABLE_SIGNAL_HANDLING=1 "$VSOMEIP_SOURCE_PATH" + cmake --build "$VSOMEIP_SOURCE_PATH/build" --target install + + - name: Save vsomeip build to cache + if: steps.cache-vsomeip.outputs.cache-hit != 'true' + uses: actions/cache@v3 + with: + path: ${{ env.VSOMEIP_INSTALL_PATH }} + key: ${{ runner.os }}-vsomeip-${{ hashFiles(env.VSOMEIP_SOURCE_PATH_WITH_WILDCARD) }} + + bundled-timings: + name: Bundled cargo timings + runs-on: ubuntu-22.04 + needs: set-env + + env: + ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }} + GENERIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.generic_cpp_stdlib_path }} + + steps: + - uses: actions/checkout@v4 + + - name: Install C++ dependencies + run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev pkg-config libssl-dev + + - name: Set environment variables + run: echo "VSOMEIP_INSTALL_PATH=${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" >> $GITHUB_ENV + + - name: Ensure vsomeip install path exists + run: mkdir -p "${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" + + - name: Install stable toolchain + run: rustup show + + - name: Build bundled base profile with cargo timings + working-directory: ${{ github.workspace }} + run: | + cargo build --timings + mkdir -p timings-artifacts/bundled-base + cp -r target/cargo-timings/. timings-artifacts/bundled-base/ + + - name: Build bundled feature profile with cargo timings + working-directory: ${{ github.workspace }} + run: | + cargo build --features vsomeip-transport,bundled-vsomeip,zenoh-transport,mqtt-transport --timings + mkdir -p timings-artifacts/bundled-feature + cp -r target/cargo-timings/. timings-artifacts/bundled-feature/ + + - name: Upload bundled base timings artifact + uses: actions/upload-artifact@v4 + with: + name: cargo-timings-bundled-base + path: timings-artifacts/bundled-base + if-no-files-found: error + + - name: Upload bundled feature timings artifact + uses: actions/upload-artifact@v4 + with: + name: cargo-timings-bundled-feature + path: timings-artifacts/bundled-feature + if-no-files-found: error + + unbundled-timings: + name: Unbundled cargo timings + runs-on: ubuntu-22.04 + needs: + - set-env + - obtain_and_build_vsomeip + + env: + ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }} + GENERIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.generic_cpp_stdlib_path }} + CACHE_KEY: ${{ needs.obtain_and_build_vsomeip.outputs.cache_key }} + + steps: + - uses: actions/checkout@v4 + + - name: Install C++ dependencies + run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev pkg-config libssl-dev + + - name: Set environment variables + run: | + echo "VSOMEIP_INSTALL_PATH=${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" >> $GITHUB_ENV + echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}/lib" >> $GITHUB_ENV + + - name: Ensure vsomeip install path exists + run: mkdir -p "${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" + + - name: Restore vsomeip build cache + uses: actions/cache@v3 + with: + path: ${{ env.VSOMEIP_INSTALL_PATH }} + key: ${{ env.CACHE_KEY }} + restore-keys: | + ${{ runner.os }}-vsomeip- + + - name: Build unbundled feature profile with cargo timings + working-directory: ${{ github.workspace }} + run: | + LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${VSOMEIP_INSTALL_PATH}/lib cargo build --features vsomeip-transport,zenoh-transport,mqtt-transport --timings + mkdir -p timings-artifacts/unbundled-feature + cp -r target/cargo-timings/. timings-artifacts/unbundled-feature/ + + - name: Upload unbundled feature timings artifact + uses: actions/upload-artifact@v4 + with: + name: cargo-timings-unbundled-feature + path: timings-artifacts/unbundled-feature + if-no-files-found: error From 1a1458677fa673b362b32d8fb8b0fdf6b5e8d773 Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sat, 7 Feb 2026 22:56:23 +0900 Subject: [PATCH 08/17] ci: parallelize bundled lint behind aggregator check --- .github/workflows/bundled-lint-and-test.yaml | 102 ++++++++++++++----- 1 file changed, 76 insertions(+), 26 deletions(-) diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index db7300f1..7df2ca22 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -54,14 +54,14 @@ jobs: echo "arch_specific_cpp_stdlib_path=$ARCH_SPECIFIC_CPP_STDLIB_PATH" >> $GITHUB_OUTPUT echo "generic_cpp_stdlib_path=$GENERIC_CPP_STDLIB_PATH" >> $GITHUB_OUTPUT - lint: - name: Lint + lint_base: + name: Lint (base build+clippy) runs-on: ubuntu-22.04 needs: set-env env: - ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }} - GENERIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.generic_cpp_stdlib_path }} + ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }} + GENERIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.generic_cpp_stdlib_path }} steps: - uses: actions/checkout@v4 @@ -70,49 +70,99 @@ jobs: run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev - name: Set environment variables - run: | - echo "VSOMEIP_INSTALL_PATH=${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" >> $GITHUB_ENV - env - - - name: Print environment variables for debugging - run: | - echo "VSOMEIP_INSTALL_PATH: ${{ env.VSOMEIP_INSTALL_PATH }}" - echo "GENERIC_CPP_STDLIB_PATH: ${{ env.GENERIC_CPP_STDLIB_PATH }}" - echo "ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ env.ARCH_SPECIFIC_CPP_STDLIB_PATH }}" - env + run: echo "VSOMEIP_INSTALL_PATH=${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" >> $GITHUB_ENV - name: Ensure vsomeip install path exists - run: | - mkdir -p ${{ env.VSOMEIP_INSTALL_PATH }} - ls -l + run: mkdir -p "${{ env.VSOMEIP_INSTALL_PATH }}" - name: Install stable toolchain run: | rustup show - rustup component add rustfmt clippy + rustup component add clippy - name: Cache Rust dependencies and build outputs uses: swatinem/rust-cache@v2 with: shared-key: ${{ github.workflow }}-${{ github.ref }} - save-if: ${{ github.job == 'lint' }} + save-if: ${{ github.job == 'lint_feature' }} - name: Build the project without Zenoh & vsomeip transports - working-directory: ${{github.workspace}} + working-directory: ${{ github.workspace }} run: cargo build + - name: cargo clippy without Zenoh & vsomeip transports - working-directory: ${{github.workspace}} + working-directory: ${{ github.workspace }} run: cargo clippy --all-targets -- -W warnings -D warnings + + lint_feature: + name: Lint (feature build+clippy) + runs-on: ubuntu-22.04 + needs: set-env + + env: + ARCH_SPECIFIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.arch_specific_cpp_stdlib_path }} + GENERIC_CPP_STDLIB_PATH: ${{ needs.set-env.outputs.generic_cpp_stdlib_path }} + + steps: + - uses: actions/checkout@v4 + + - name: Install C++ dependencies + run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev + + - name: Set environment variables + run: echo "VSOMEIP_INSTALL_PATH=${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" >> $GITHUB_ENV + + - name: Ensure vsomeip install path exists + run: mkdir -p "${{ env.VSOMEIP_INSTALL_PATH }}" + + - name: Install stable toolchain + run: | + rustup show + rustup component add clippy + + - name: Cache Rust dependencies and build outputs + uses: swatinem/rust-cache@v2 + with: + shared-key: ${{ github.workflow }}-${{ github.ref }} + save-if: ${{ github.job == 'lint_feature' }} + - name: Build the project with Zenoh & vsomeip transports (and thus streamer references) - working-directory: ${{github.workspace}} + working-directory: ${{ github.workspace }} run: cargo build --features vsomeip-transport,bundled-vsomeip,zenoh-transport,mqtt-transport + - name: cargo clippy with Zenoh & vsomeip transports (and thus streamer references) - working-directory: ${{github.workspace}} + working-directory: ${{ github.workspace }} run: cargo clippy --features vsomeip-transport,bundled-vsomeip,zenoh-transport,mqtt-transport --all-targets -- -W warnings -D warnings + + lint_fmt: + name: Lint (fmt) + runs-on: ubuntu-22.04 + needs: set-env + + steps: + - uses: actions/checkout@v4 + + - name: Install stable toolchain + run: | + rustup show + rustup component add rustfmt + - name: cargo fmt - working-directory: ${{github.workspace}} + working-directory: ${{ github.workspace }} run: cargo fmt -- --check + lint: + name: Lint + runs-on: ubuntu-22.04 + needs: + - lint_base + - lint_feature + - lint_fmt + + steps: + - name: Aggregate lint job results + run: echo "Bundled lint checks completed successfully" + test: name: Test runs-on: ubuntu-22.04 @@ -130,7 +180,7 @@ jobs: uses: swatinem/rust-cache@v2 with: shared-key: ${{ github.workflow }}-${{ github.ref }} - save-if: ${{ github.job == 'lint' }} + save-if: ${{ github.job == 'lint_feature' }} - name: Install C++ dependencies run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev @@ -178,7 +228,7 @@ jobs: uses: swatinem/rust-cache@v2 with: shared-key: ${{ github.workflow }}-${{ github.ref }} - save-if: ${{ github.job == 'lint' }} + save-if: ${{ github.job == 'lint_feature' }} - name: Install C++ dependencies run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev From e83117f7975467eb63f7719e15aa8f9bbd27b4fa Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sat, 7 Feb 2026 23:18:34 +0900 Subject: [PATCH 09/17] ci: stabilize bundled lint shard aggregation and vsomeip linking --- .github/workflows/bundled-lint-and-test.yaml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index 7df2ca22..d0105953 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -115,6 +115,9 @@ jobs: - name: Ensure vsomeip install path exists run: mkdir -p "${{ env.VSOMEIP_INSTALL_PATH }}" + - name: Clear cached vsomeip-sys artifacts + run: cargo clean -p vsomeip-sys + - name: Install stable toolchain run: | rustup show @@ -128,11 +131,11 @@ jobs: - name: Build the project with Zenoh & vsomeip transports (and thus streamer references) working-directory: ${{ github.workspace }} - run: cargo build --features vsomeip-transport,bundled-vsomeip,zenoh-transport,mqtt-transport + run: env -u VSOMEIP_INSTALL_PATH cargo build --features vsomeip-transport,bundled-vsomeip,zenoh-transport,mqtt-transport - name: cargo clippy with Zenoh & vsomeip transports (and thus streamer references) working-directory: ${{ github.workspace }} - run: cargo clippy --features vsomeip-transport,bundled-vsomeip,zenoh-transport,mqtt-transport --all-targets -- -W warnings -D warnings + run: env -u VSOMEIP_INSTALL_PATH cargo clippy --features vsomeip-transport,bundled-vsomeip,zenoh-transport,mqtt-transport --all-targets -- -W warnings -D warnings lint_fmt: name: Lint (fmt) @@ -154,6 +157,7 @@ jobs: lint: name: Lint runs-on: ubuntu-22.04 + if: ${{ always() }} needs: - lint_base - lint_feature @@ -161,7 +165,13 @@ jobs: steps: - name: Aggregate lint job results - run: echo "Bundled lint checks completed successfully" + run: | + echo "lint_base=${{ needs.lint_base.result }}" + echo "lint_feature=${{ needs.lint_feature.result }}" + echo "lint_fmt=${{ needs.lint_fmt.result }}" + if [ "${{ needs.lint_base.result }}" != "success" ] || [ "${{ needs.lint_feature.result }}" != "success" ] || [ "${{ needs.lint_fmt.result }}" != "success" ]; then + exit 1 + fi test: name: Test From 5900a74a111a1d742376c7c9c16b71b65a1b8f77 Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sat, 7 Feb 2026 23:18:38 +0900 Subject: [PATCH 10/17] ci: enable cargo timings profiling run on PR changes --- .github/workflows/cargo-timings-profile.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cargo-timings-profile.yaml b/.github/workflows/cargo-timings-profile.yaml index ea525d97..2b58650e 100644 --- a/.github/workflows/cargo-timings-profile.yaml +++ b/.github/workflows/cargo-timings-profile.yaml @@ -20,6 +20,9 @@ env: VSOMEIP_INSTALL_PATH: vsomeip-install on: + pull_request: + paths: + - ".github/workflows/cargo-timings-profile.yaml" workflow_dispatch: concurrency: From aa1f1b4e8e7b275706dcfc45a00dd6009fa65b11 Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sat, 7 Feb 2026 23:26:31 +0900 Subject: [PATCH 11/17] ci: rebuild bundled vsomeip artifacts after cache restore --- .github/workflows/bundled-lint-and-test.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index d0105953..2897741f 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -115,9 +115,6 @@ jobs: - name: Ensure vsomeip install path exists run: mkdir -p "${{ env.VSOMEIP_INSTALL_PATH }}" - - name: Clear cached vsomeip-sys artifacts - run: cargo clean -p vsomeip-sys - - name: Install stable toolchain run: | rustup show @@ -129,6 +126,11 @@ jobs: shared-key: ${{ github.workflow }}-${{ github.ref }} save-if: ${{ github.job == 'lint_feature' }} + - name: Force rebuild bundled vsomeip artifacts + run: | + rm -rf "${VSOMEIP_INSTALL_PATH}" + cargo clean -p vsomeip-sys -p up-transport-vsomeip + - name: Build the project with Zenoh & vsomeip transports (and thus streamer references) working-directory: ${{ github.workspace }} run: env -u VSOMEIP_INSTALL_PATH cargo build --features vsomeip-transport,bundled-vsomeip,zenoh-transport,mqtt-transport From 28cc17c22275e9e5927351d0471af9b7a1ea643e Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sun, 8 Feb 2026 00:31:04 +0900 Subject: [PATCH 12/17] ci: avoid vendored OpenSSL in required CI paths --- .github/workflows/bundled-lint-and-test.yaml | 9 +++++---- .github/workflows/cargo-timings-profile.yaml | 1 + .github/workflows/unbundled-lint-and-test.yaml | 7 ++++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index 2897741f..f350d354 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -15,6 +15,7 @@ name: Lint and Test - Bundled env: VSOMEIP_INSTALL_PATH: vsomeip-install + OPENSSL_NO_VENDOR: "1" on: push: @@ -67,7 +68,7 @@ jobs: - uses: actions/checkout@v4 - name: Install C++ dependencies - run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev + run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev pkg-config libssl-dev - name: Set environment variables run: echo "VSOMEIP_INSTALL_PATH=${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" >> $GITHUB_ENV @@ -107,7 +108,7 @@ jobs: - uses: actions/checkout@v4 - name: Install C++ dependencies - run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev + run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev pkg-config libssl-dev - name: Set environment variables run: echo "VSOMEIP_INSTALL_PATH=${{ github.workspace }}/${{ env.VSOMEIP_INSTALL_PATH }}" >> $GITHUB_ENV @@ -195,7 +196,7 @@ jobs: save-if: ${{ github.job == 'lint_feature' }} - name: Install C++ dependencies - run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev + run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev pkg-config libssl-dev - name: Set environment variables run: | @@ -243,7 +244,7 @@ jobs: save-if: ${{ github.job == 'lint_feature' }} - name: Install C++ dependencies - run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev + run: sudo apt-get install -y build-essential cmake libboost-all-dev libclang-dev pkg-config libssl-dev - name: Set environment variables run: | diff --git a/.github/workflows/cargo-timings-profile.yaml b/.github/workflows/cargo-timings-profile.yaml index 2b58650e..32f096bd 100644 --- a/.github/workflows/cargo-timings-profile.yaml +++ b/.github/workflows/cargo-timings-profile.yaml @@ -18,6 +18,7 @@ env: VSOMEIP_RELEASE_TAG: 3.4.10.tar.gz VSOMEIP_SOURCE_PATH: vsomeip-src VSOMEIP_INSTALL_PATH: vsomeip-install + OPENSSL_NO_VENDOR: "1" on: pull_request: diff --git a/.github/workflows/unbundled-lint-and-test.yaml b/.github/workflows/unbundled-lint-and-test.yaml index 9495021a..402ef44d 100644 --- a/.github/workflows/unbundled-lint-and-test.yaml +++ b/.github/workflows/unbundled-lint-and-test.yaml @@ -18,6 +18,7 @@ env: VSOMEIP_RELEASE_TAG: 3.4.10.tar.gz VSOMEIP_SOURCE_PATH: vsomeip-src VSOMEIP_INSTALL_PATH: vsomeip-install + OPENSSL_NO_VENDOR: "1" on: push: @@ -160,7 +161,7 @@ jobs: - uses: actions/checkout@v4 - name: Install C++ dependencies - run: sudo apt-get install -y build-essential cmake libboost-all-dev + run: sudo apt-get install -y build-essential cmake libboost-all-dev pkg-config libssl-dev - name: Set environment variables run: | @@ -223,7 +224,7 @@ jobs: - name: Install C++ dependencies if: steps.cache-vsomeip.outputs.cache-hit != 'true' - run: sudo apt-get install -y build-essential cmake libboost-all-dev + run: sudo apt-get install -y build-essential cmake libboost-all-dev pkg-config libssl-dev - name: Set environment variables run: | @@ -283,7 +284,7 @@ jobs: - uses: actions/checkout@v4 - name: Install C++ dependencies - run: sudo apt-get install -y build-essential cmake libboost-all-dev + run: sudo apt-get install -y build-essential cmake libboost-all-dev pkg-config libssl-dev - name: Set environment variables run: | From 4da1f37bfdce64767e495d507b07d64805ae0554 Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sun, 8 Feb 2026 00:43:18 +0900 Subject: [PATCH 13/17] ci: de-duplicate bundled feature lint compilation --- .github/workflows/bundled-lint-and-test.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index f350d354..0bcc43d0 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -132,10 +132,6 @@ jobs: rm -rf "${VSOMEIP_INSTALL_PATH}" cargo clean -p vsomeip-sys -p up-transport-vsomeip - - name: Build the project with Zenoh & vsomeip transports (and thus streamer references) - working-directory: ${{ github.workspace }} - run: env -u VSOMEIP_INSTALL_PATH cargo build --features vsomeip-transport,bundled-vsomeip,zenoh-transport,mqtt-transport - - name: cargo clippy with Zenoh & vsomeip transports (and thus streamer references) working-directory: ${{ github.workspace }} run: env -u VSOMEIP_INSTALL_PATH cargo clippy --features vsomeip-transport,bundled-vsomeip,zenoh-transport,mqtt-transport --all-targets -- -W warnings -D warnings From f6bc6ff1e7137ed56a8d9af52dc9186968ff9023 Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sun, 8 Feb 2026 00:57:13 +0900 Subject: [PATCH 14/17] ci: harden bundled lint cleanup for vsomeip artifacts --- .github/workflows/bundled-lint-and-test.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index 0bcc43d0..ae29fa88 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -130,6 +130,7 @@ jobs: - name: Force rebuild bundled vsomeip artifacts run: | rm -rf "${VSOMEIP_INSTALL_PATH}" + rm -rf target/debug/build/vsomeip-sys-* target/debug/build/up-transport-vsomeip-* cargo clean -p vsomeip-sys -p up-transport-vsomeip - name: cargo clippy with Zenoh & vsomeip transports (and thus streamer references) From b5ebe7d617aa5af86b5ed23d4b6652261bcd72cf Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sun, 8 Feb 2026 01:32:30 +0900 Subject: [PATCH 15/17] ci: trim unbundled lint apt deps --- .github/workflows/unbundled-lint-and-test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unbundled-lint-and-test.yaml b/.github/workflows/unbundled-lint-and-test.yaml index 402ef44d..397d32b9 100644 --- a/.github/workflows/unbundled-lint-and-test.yaml +++ b/.github/workflows/unbundled-lint-and-test.yaml @@ -161,7 +161,7 @@ jobs: - uses: actions/checkout@v4 - name: Install C++ dependencies - run: sudo apt-get install -y build-essential cmake libboost-all-dev pkg-config libssl-dev + run: sudo apt-get install -y build-essential libboost-all-dev libssl-dev - name: Set environment variables run: | From fc68e0241d03cdcb3f9bd94a35bb6d166fac29dc Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Sun, 8 Feb 2026 01:38:21 +0900 Subject: [PATCH 16/17] ci: simplify bundled lint aggregator checks --- .github/workflows/bundled-lint-and-test.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index ae29fa88..0f2fa135 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -164,14 +164,15 @@ jobs: - lint_fmt steps: - - name: Aggregate lint job results + - name: Report lint job results run: | echo "lint_base=${{ needs.lint_base.result }}" echo "lint_feature=${{ needs.lint_feature.result }}" echo "lint_fmt=${{ needs.lint_fmt.result }}" - if [ "${{ needs.lint_base.result }}" != "success" ] || [ "${{ needs.lint_feature.result }}" != "success" ] || [ "${{ needs.lint_fmt.result }}" != "success" ]; then - exit 1 - fi + + - name: Fail when any lint job failed + if: ${{ needs.lint_base.result != 'success' || needs.lint_feature.result != 'success' || needs.lint_fmt.result != 'success' }} + run: exit 1 test: name: Test From 29fb087e201ab9217d0955a7ee3590552a65012a Mon Sep 17 00:00:00 2001 From: Pete LeVasseur Date: Mon, 9 Feb 2026 18:35:12 -0500 Subject: [PATCH 17/17] Update copyright year on new file to 2026 --- .github/workflows/nightly-coverage.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly-coverage.yaml b/.github/workflows/nightly-coverage.yaml index 6244fd92..a7b81dcf 100644 --- a/.github/workflows/nightly-coverage.yaml +++ b/.github/workflows/nightly-coverage.yaml @@ -1,5 +1,5 @@ # ******************************************************************************** -# Copyright (c) 2024 Contributors to the Eclipse Foundation +# Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership.