Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 39 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
name: CI micro_ros_utilities

on:
push:
branches:
- jazzy
pull_request:
branches:
- '**'
Expand All @@ -16,22 +19,53 @@ 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": {
"mixin": [ "coverage-gcc" ]
}
}
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
30 changes: 13 additions & 17 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading