Add GitHub actions CI #11
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Based on GTSAM file (by @ProfFan) | |
name: CI ROS | |
on: [push, pull_request] | |
jobs: | |
test_docker: # On Linux, iterates on all ROS 1 and ROS 2 distributions. | |
runs-on: ubuntu-latest | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
strategy: | |
matrix: | |
# Github Actions requires a single row to be added to the build matrix. | |
# See https://help.github.com/en/articles/workflow-syntax-for-github-actions. | |
ros_distribution: | |
- noetic | |
- humble | |
- iron | |
- rolling | |
# Define the Docker image(s) associated with each ROS distribution. | |
# The include syntax allows additional variables to be defined, like | |
# docker_image in this case. See documentation: | |
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#example-including-configurations-in-a-matrix-build | |
# | |
# Platforms are defined in REP 3 and REP 2000: | |
# https://ros.org/reps/rep-0003.html | |
# https://ros.org/reps/rep-2000.html | |
include: | |
# Noetic Ninjemys (May 2020 - May 2025) | |
- docker_image: ubuntu:focal | |
ros_distribution: noetic | |
ros_version: 1 | |
# Humble Hawksbill (May 2022 - May 2027) | |
- docker_image: ubuntu:jammy | |
ros_distribution: humble | |
ros_version: 2 | |
# Iron Irwini (May 2023 - November 2024) | |
- docker_image: ubuntu:jammy | |
ros_distribution: iron | |
ros_version: 2 | |
# Rolling Ridley (No End-Of-Life) | |
- docker_image: ubuntu:jammy | |
ros_distribution: rolling | |
ros_version: 2 | |
container: | |
image: ${{ matrix.docker_image }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@master | |
- name: Checkout submodules | |
run: | | |
apt-get -y update | |
apt-get -y install git | |
cd $GITHUB_WORKSPACE && ls -lh | |
cd $GITHUB_WORKSPACE && git submodule update --init --recursive | |
- name: setup ROS environment | |
uses: ros-tooling/[email protected] | |
with: | |
required-ros-distributions: ${{ matrix.ros_distribution }} | |
- name: Install rosdep dependencies | |
run: | | |
# See bug/issue: https://github.com/orgs/community/discussions/47863 | |
rosdep install --from-paths . --ignore-src -r -y | |
- name: Build with colcon | |
run: | | |
source /opt/ros/*/setup.bash | |
colcon build --symlink-install |