Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modify CI to track ros testing repo #256

Merged
Merged
48 changes: 33 additions & 15 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,45 @@ on:
push:
branches: [ rolling ]
workflow_dispatch:
schedule:
# Run every morning to detect flakiness and broken dependencies
- cron: '03 5 * * *'
defaults:
run:
shell: bash
jobs:
test:
runs-on: ubuntu-latest
build_and_test:
name: build_and_test_${{ matrix.BUILD_TYPE }}_${{ matrix.ROS_DISTRO }}
strategy:
fail-fast: false
matrix:
distro: ['iron', 'jazzy', 'rolling']
include:
# Rolling (source)
- ROS_DISTRO: rolling
BUILD_TYPE: source
# Jazzy (binary)
- ROS_DISTRO: jazzy
BUILD_TYPE: binary
# Iron (binary)
- ROS_DISTRO: iron
BUILD_TYPE: binary
env:
ROS2_REPOS_FILE_URL: 'https://raw.githubusercontent.com/ros2/ros2/${{ matrix.ROS_DISTRO }}/ros2.repos'
runs-on: ubuntu-latest
container:
image: ros:${{ matrix.distro }}-ros-base
timeout-minutes: 30
image: ${{ matrix.BUILD_TYPE == 'binary' && format('ros:{0}-ros-base', matrix.ROS_DISTRO) || 'ubuntu:noble' }}
steps:
- name: Deps
run: |
apt update && apt install -y curl
- uses: actions/checkout@v4
- name: rosdep
run: |
rosdep update
rosdep install --from-paths . -yir
- name: build
run: /ros_entrypoint.sh colcon build
- uses: ros-tooling/[email protected]
if: ${{ matrix.BUILD_TYPE == 'source' }}
- name: Install Coverage Tools
if: ${{ matrix.BUILD_TYPE == 'binary' }}
run: sudo apt update && sudo apt install -y python3-colcon-coveragepy-result python3-colcon-lcov-result lcov
- name: Build and run tests
id: action-ros-ci
uses: ros-tooling/[email protected]
with:
package-name: |
rmw_zenoh_cpp
zenoh_c_vendor
target-ros2-distro: ${{ matrix.ROS_DISTRO }}
vcs-repo-file-url: ${{ matrix.BUILD_TYPE == 'source' && env.ROS2_REPOS_FILE_URL || '' }}