From c11ee08f69fad3eafc17d9ac1032c9d2c6644a60 Mon Sep 17 00:00:00 2001 From: David Laseca Perez Date: Fri, 11 Sep 2026 12:55:00 +0200 Subject: [PATCH 1/2] Update CI (#71) * Bump CI actions Signed-off-by: David Laseca Perez * Fix codecov Signed-off-by: David Laseca Perez * Fix codecov 2 Signed-off-by: David Laseca Perez * Remove coverage from nightly Signed-off-by: David Laseca Perez * Update CI Signed-off-by: David Laseca Perez * Set 'rolling' to 'ubuntu:24' Signed-off-by: David Laseca Perez * Fix coverage 3 Signed-off-by: David Laseca Perez * Fix coverage 4 Signed-off-by: David Laseca Perez * Clean debugging options Signed-off-by: David Laseca Perez --------- Signed-off-by: David Laseca Perez (cherry picked from commit 383fc6d0054863a5fd79276e96f7bf9cf6cc1efe) --- .github/workflows/ci.yml | 44 +++++++++++++++++++++++++++++++---- .github/workflows/nightly.yml | 30 +++++++++++------------- 2 files changed, 52 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2c804ae..ac5be21 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,9 @@ name: CI micro_ros_utilities on: + push: + branches: + - rolling pull_request: branches: - '**' @@ -16,15 +19,19 @@ jobs: ros_distribution: jazzy container: image: ${{ matrix.docker_image }} + steps: - - uses: actions/checkout@v3 - - uses: ros-tooling/setup-ros@0.7.13 + - uses: actions/checkout@v7 + + - uses: ros-tooling/setup-ros@0.7.19 with: required-ros-distributions: ${{ matrix.ros_distribution }} - - uses : ros-tooling/action-ros-ci@0.4.3 + + - uses : ros-tooling/action-ros-ci@0.4.8 with: package-name: "micro_ros_utilities" target-ros2-distro: ${{ matrix.ros_distribution }} + coverage-result: false colcon-defaults: | { "build": { @@ -32,6 +39,33 @@ jobs: } } colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml - - uses: codecov/codecov-action@v1 + + - name: Coverage results + working-directory: ros_ws + run: | + . /opt/ros/${{ matrix.ros_distribution }}/setup.sh + + colcon lcov-result --initial --lcov-args="--ignore-errors=mismatch" + colcon lcov-result --packages-select micro_ros_utilities --lcov-args="--ignore-errors=mismatch" + test -s lcov/total_coverage.info + + # Headers may have no instrumented code, leaving their pattern unused. + lcov --branch-coverage --ignore-errors unused --extract lcov/total_coverage.info \ + '*/micro_ros_utilities/src/*' \ + '*/micro_ros_utilities/include/*' \ + --output-file lcov/micro_ros_utilities_coverage.info + + test -s lcov/micro_ros_utilities_coverage.info + # --ignore-errors unused means lcov stays quiet if 'src/*' also stops + # matching, so assert both library sources actually survived the extract. + test "$(grep -c '^SF:' lcov/micro_ros_utilities_coverage.info)" -ge 2 + + - run: apt-get update && apt-get install -y gnupg # Needed for codecov action + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v5 with: - file: ros_ws/lcov/total_coverage.info + files: ros_ws/lcov/micro_ros_utilities_coverage.info + disable_search: true + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: false diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 8da5668..3605e2b 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -18,30 +18,26 @@ jobs: include: - docker_image: ubuntu:24.04 ros_distribution: rolling - - docker_image: ubuntu:jammy - ros_distribution: iron - - docker_image: ubuntu:jammy - ros_distribution: humble + - docker_image: ubuntu:26.04 + ros_distribution: lyrical + - docker_image: ubuntu:24.04 + ros_distribution: kilted - docker_image: ubuntu:24.04 ros_distribution: jazzy + - docker_image: ubuntu:jammy + ros_distribution: humble container: image: ${{ matrix.docker_image }} + steps: - - uses: actions/checkout@v3 - - uses: ros-tooling/setup-ros@0.7.13 + - uses: actions/checkout@v7 + + - uses: ros-tooling/setup-ros@0.7.19 with: required-ros-distributions: ${{ matrix.ros_distribution }} - - uses : ros-tooling/action-ros-ci@0.4.3 + + - uses : ros-tooling/action-ros-ci@0.4.8 with: package-name: "micro_ros_utilities" target-ros2-distro: ${{ matrix.ros_distribution }} - colcon-defaults: | - { - "build": { - "mixin": [ "coverage-gcc" ] - } - } - colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml - - uses: codecov/codecov-action@v1 - with: - file: ros_ws/lcov/total_coverage.info + coverage-result: false From 65b6fe1c6b34924c1849913518039aea16cb1cf7 Mon Sep 17 00:00:00 2001 From: David Laseca Perez Date: Fri, 11 Sep 2026 13:12:43 +0200 Subject: [PATCH 2/2] Adapt CI for jazzy Signed-off-by: David Laseca Perez --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac5be21..7701719 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,7 @@ name: CI micro_ros_utilities on: push: branches: - - rolling + - jazzy pull_request: branches: - '**'