I've got something working here: https://github.com/lucasw/frei0r_imag...
(see also https://github.com/lucasw/frei0r_imag... for how the results are reported)
name: Noetic Ubuntu 20.04
on:
push:
pull_request:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-20.04
env:
ROS_CI_DESKTOP: "`lsb_release -cs`" # e.g. [trusty|xenial|...]
ROS_DISTRO: noetic
steps:
- uses: actions/checkout@v2
- name: Install Non-ROS Dependencies
run: |
ls -l $GITHUB_WORKSPACE
sudo apt-get install -y frei0r-plugins-dev
- name: Install ROS
run: |
sudo sh -c "echo \"deb http://packages.ros.org/ros/ubuntu $ROS_CI_DESKTOP main\" > /etc/apt/sources.list.d/ros-latest.list"
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-get update -qq
sudo apt-get install dpkg
sudo apt-get install -y python3-catkin-pkg
sudo apt-get install -y python3-catkin-tools
sudo apt-get install -y python3-osrf-pycommon
sudo apt-get install -y python3-rosdep
sudo apt-get install -y python3-wstool
sudo apt-get install -y ros-cmake-modules
sudo apt-get install -y ros-$ROS_DISTRO-catkin
source /opt/ros/$ROS_DISTRO/setup.bash
- name: Install ROS packages with rosdep
run: |
source /opt/ros/$ROS_DISTRO/setup.bash
sudo rosdep init
rosdep update
mkdir -p ~/catkin_ws/src
ln -s $GITHUB_WORKSPACE ~/catkin_ws/src/frei0r_image
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -s # do a dry-run first
rosdep install --from-paths src --ignore-src -r -y
- name: catkin build
run: |
source /opt/ros/$ROS_DISTRO/setup.bash
cd ~/catkin_ws
catkin build --no-status
source devel/setup.bash
- name: lint
run: |
cd ~/catkin_ws
catkin build frei0r_image --no-deps --catkin-make-args roslint
It would be fantastic if there was a ubuntu-20.04
target image that already has noetic on it to speed up the build. (In other contexts I've seen downloading a large custom pre-installed image is slower than starting with a clean base image and installing everything from highly available apt repos, but I'm sure that can vary wildly).