name: ros2 on: push: branches: [ ros2 ] pull_request: branches: [ ros2 ] workflow_dispatch: env: BUILD_TYPE: Release concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: build: name: Build ros2 ${{ matrix.ros_distro }} runs-on: ubuntu-latest strategy: matrix: ros_distro: [humble, jazzy, kilted, lyrical, rolling] include: - ros_distro: humble skip_keys: '' packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_sync rtabmap_util rtabmap_python' - ros_distro: jazzy skip_keys: '' packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_sync rtabmap_util rtabmap_python' - ros_distro: kilted skip_keys: 'grid_map_ros' packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_sync rtabmap_util rtabmap_python' - ros_distro: lyrical skip_keys: 'velodyne grid_map_ros libpointmatcher' packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_sync rtabmap_util rtabmap_python' - ros_distro: rolling # Rolling has moved to Ubuntu resolute and much of it has not been rebuilt for # that yet, so rosdep finds nothing to install for these. They are all optional # to rtabmap, which just builds without them. skip_keys: 'velodyne libpointmatcher gtsam grid_map_ros' use_ros2_testing: true # Rolling is using ros2-testing (nightly) # nav2 is missing from resolute too, and it is not optional: rtabmap_slam and # rtabmap_costmap_plugins need it to compile at all, and the rtabmap_ros # metapackage pulls both in. So rolling names the packages it can build. packages: 'rtabmap_conversions rtabmap_odom rtabmap_sync rtabmap_util rtabmap_python' fail-fast: false container: image: osrf/ros:${{ matrix.ros_distro }}-desktop-full steps: - uses: actions/checkout@v4 - uses: ros-tooling/setup-ros@v0.7 with: required-ros-distributions: ${{ matrix.ros_distro }} use-ros2-testing: ${{ matrix.use_ros2_testing || false }} - run: | DEBIAN_FRONTEND=noninteractive sudo apt update sudo apt upgrade -y - run: | echo "repositories:\n introlab/rtabmap:\n type: git\n url: https://github.com/introlab/rtabmap.git\n version: master\n" > /tmp/deps.repos &&\ cat /tmp/deps.repos - uses: ros-tooling/action-ros-ci@v0.4 with: package-name: ${{ matrix.packages }} target-ros2-distro: ${{ matrix.ros_distro }} vcs-repo-file-url: /tmp/deps.repos rosdep-skip-keys: "${{ matrix.skip_keys }}"