From 297250d96952bc48de8e75380a9c0f657456e447 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) # Conflicts: # .github/workflows/nightly.yml --- .github/workflows/ci.yml | 44 +++++++++++++++++++++++++++++++---- .github/workflows/nightly.yml | 31 ++++++++++++++++-------- 2 files changed, 60 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 72ef9c3..ef0944a 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: 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 }} + 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 0a9f9df..398d1df 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -14,28 +14,39 @@ jobs: include: - docker_image: ubuntu:focal ros_distribution: rolling +<<<<<<< HEAD - docker_image: ubuntu:focal ros_distribution: galactic +======= + - docker_image: ubuntu:26.04 + ros_distribution: lyrical + - docker_image: ubuntu:24.04 + ros_distribution: kilted + - docker_image: ubuntu:24.04 + ros_distribution: jazzy +>>>>>>> 383fc6d (Update CI (#71)) - docker_image: ubuntu:jammy ros_distribution: humble container: image: ${{ matrix.docker_image }} + steps: +<<<<<<< HEAD - uses: actions/checkout@v3 - uses: ros-tooling/setup-ros@0.3.2 with: required-ros-distributions: ${{ matrix.ros_distribution }} - uses : ros-tooling/action-ros-ci@0.2.5 +======= + - 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.8 +>>>>>>> 383fc6d (Update CI (#71)) 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 2988e4be05581c03a759fb7fd04ce6608781565b Mon Sep 17 00:00:00 2001 From: David Laseca Perez Date: Fri, 11 Sep 2026 13:26:10 +0200 Subject: [PATCH 2/2] Adapt CI for humble Signed-off-by: David Laseca Perez --- .github/workflows/ci.yml | 41 ++--------------------------------- .github/workflows/nightly.yml | 17 ++------------- 2 files changed, 4 insertions(+), 54 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef0944a..9cb2992 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,14 +3,14 @@ name: CI micro_ros_utilities on: push: branches: - - rolling + - humble pull_request: branches: - '**' jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: @@ -32,40 +32,3 @@ jobs: package-name: "micro_ros_utilities" target-ros2-distro: ${{ matrix.ros_distribution }} coverage-result: false - colcon-defaults: | - { - "build": { - "mixin": [ "coverage-gcc" ] - } - } - colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml - - - 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: - 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 398d1df..11f2515 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -7,37 +7,25 @@ on: jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - - docker_image: ubuntu:focal + - docker_image: ubuntu:24.04 ros_distribution: rolling -<<<<<<< HEAD - - docker_image: ubuntu:focal - ros_distribution: galactic -======= - docker_image: ubuntu:26.04 ros_distribution: lyrical - docker_image: ubuntu:24.04 ros_distribution: kilted - docker_image: ubuntu:24.04 ros_distribution: jazzy ->>>>>>> 383fc6d (Update CI (#71)) - docker_image: ubuntu:jammy ros_distribution: humble container: image: ${{ matrix.docker_image }} steps: -<<<<<<< HEAD - - uses: actions/checkout@v3 - - uses: ros-tooling/setup-ros@0.3.2 - with: - required-ros-distributions: ${{ matrix.ros_distribution }} - - uses : ros-tooling/action-ros-ci@0.2.5 -======= - uses: actions/checkout@v7 - uses: ros-tooling/setup-ros@0.7.19 @@ -45,7 +33,6 @@ jobs: required-ros-distributions: ${{ matrix.ros_distribution }} - uses : ros-tooling/action-ros-ci@0.4.8 ->>>>>>> 383fc6d (Update CI (#71)) with: package-name: "micro_ros_utilities" target-ros2-distro: ${{ matrix.ros_distribution }}