build_and_test action for both ROS 1 and ROS 2 code #15
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
name: build-and-test | |
on: | |
push: | |
branches: [master, devel/humble, devel/humble_pranav] | |
pull_request: | |
branches: [master, devel/humble] | |
jobs: | |
ros1-build: | |
if: github.ref == 'refs/heads/master' | |
strategy: | |
matrix: | |
ros_distro: [melodic, noetic] | |
runs-on: ubuntu-latest | |
container: osrf/ros:${{ matrix.ros_distro }}-desktop | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: | | |
apt-get update | |
apt-get install -qy g++ libeigen3-dev python3-catkin-tools | |
rosdep update | |
rosdep install --from-paths . --ignore-src -y -r --as-root apt:false | |
- name: Setup catkin workspace | |
run: | | |
. /opt/ros/${{ matrix.ros_distro }}/setup.sh | |
mkdir -p ${RUNNER_WORKSPACE}/catkin_ws/src | |
cd ${RUNNER_WORKSPACE}/catkin_ws/src | |
ln -s ${GITHUB_WORKSPACE} | |
catkin_init_workspace . | |
- name: Build workspace and run tests | |
run: | | |
. /opt/ros/${{ matrix.ros_distro }}/setup.sh | |
cd ${RUNNER_WORKSPACE}/catkin_ws | |
export LDFLAGS="-Wl,-O1,--sort-common,--as-needed,--no-undefined,-z,relro,-z,now -pthread" | |
catkin build -j4 --no-status -DCMAKE_BUILD_TYPE=Release | |
. ${RUNNER_WORKSPACE}/catkin_ws/devel/setup.sh | |
catkin test | |
ros2-build: | |
if: github.ref == 'refs/heads/devel/humble_pranav' | |
strategy: | |
matrix: | |
ros_distro: [humble] | |
runs-on: ubuntu-latest | |
container: osrf/ros:${{ matrix.ros_distro }}-desktop | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: | | |
apt-get update | |
apt-get install -qy python3-colcon-common-extensions | |
rosdep update | |
rosdep install --from-paths . --ignore-src -y -r --rosdistro ${{ matrix.ros_distro }} | |
- name: Build workspace and run tests | |
run: | | |
. /opt/ros/${{ matrix.ros_distro }}/setup.sh | |
mkdir -p ${RUNNER_WORKSPACE}/colcon_ws/src | |
cd ${RUNNER_WORKSPACE}/colcon_ws/src | |
ln -s ${GITHUB_WORKSPACE} | |
colcon build --merge-install --cmake-args -DCMAKE_BUILD_TYPE=Release | |
. ${RUNNER_WORKSPACE}/colcon_ws/install/setup.sh | |
colcon test |