Avoid tf2_geometry_msgs package #624
This file contains hidden or 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: Continuous Integration | |
on: | |
push: | |
paths-ignore: | |
- 'doc/**' | |
- '**.md' | |
pull_request: | |
schedule: | |
- cron: '0 0 * * TUE' | |
workflow_dispatch: | |
env: | |
CMAKE_C_COMPILER_LAUNCHER: ccache | |
CMAKE_CXX_COMPILER_LAUNCHER: ccache | |
jobs: | |
maybe_skip: | |
runs-on: ubuntu-latest | |
outputs: | |
should_skip: ${{steps.skip_check.outputs.should_skip}} | |
steps: | |
- uses: fkirc/skip-duplicate-actions@v5 | |
id: skip_check | |
with: | |
cancel_others: 'true' | |
build: | |
name: build (${{matrix.system.os}}, ${{matrix.robotology.yarp}}, ${{matrix.system.compiler.cc}}) | |
runs-on: ubuntu-latest | |
container: | |
image: ros:${{matrix.system.ros}}-ros-core | |
needs: maybe_skip | |
if: ${{needs.maybe_skip.outputs.should_skip != 'true'}} | |
strategy: | |
fail-fast: false | |
matrix: | |
system: | |
- { os: ubuntu-22.04, ros: humble, compiler: { cc: gcc-11, cxx: g++-11, apt: g++-11 } } | |
# clang-15 instead of clang-14: https://github.com/roboticslab-uc3m/questions-and-answers/issues/101 | |
- { os: ubuntu-22.04, ros: humble, compiler: { cc: clang-15, cxx: clang++-15, apt: clang-15 } } | |
- { os: ubuntu-24.04, ros: jazzy, compiler: { cc: gcc-13, cxx: g++-13, apt: g++-13 } } | |
- { os: ubuntu-24.04, ros: jazzy, compiler: { cc: clang-18, cxx: clang++-18, apt: clang-18 } } | |
robotology: | |
# CMake 3.20 instead of 3.19 because of ROS Jazzy | |
- { yarp: yarp-3.10, cmake: 3.20.x } | |
- { yarp: yarp-3.11, cmake: 3.20.x } | |
- { yarp: master, cmake: 3.20.x } | |
experimental: | |
- ${{github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'}} | |
exclude: | |
- { experimental: false, robotology: { yarp: master } } | |
steps: | |
- name: Check out main project | |
uses: actions/checkout@v4 | |
- name: Check out YCM | |
uses: actions/checkout@v4 | |
with: | |
repository: robotology/ycm | |
path: .deps/ycm | |
- name: Check out YARP | |
uses: actions/checkout@v4 | |
with: | |
repository: robotology/yarp | |
ref: ${{matrix.robotology.yarp}} | |
path: .deps/yarp | |
- name: Check out Orocos KDL | |
uses: actions/checkout@v4 | |
with: | |
repository: orocos/orocos_kinematics_dynamics | |
path: .deps/kdl | |
- name: Check out SWIG | |
uses: actions/checkout@v4 | |
with: | |
repository: swig/swig | |
ref: v4.2.1 | |
path: .deps/swig | |
- name: Install dependencies via apt | |
run: apt-get update && apt-get install -qq ccache make ${{matrix.system.compiler.apt}} libeigen3-dev bison ros-${{matrix.system.ros}}-tf2 ros-${{matrix.system.ros}}-tf2-geometry-msgs googletest | |
- name: Set up CMake | |
uses: jwlawson/actions-setup-cmake@v2 | |
with: | |
cmake-version: ${{matrix.robotology.cmake}} | |
- name: Set up Ccache | |
uses: hendrikmuhs/ccache-action@v1 | |
with: | |
key: ${{matrix.system.os}}-${{matrix.robotology.yarp}}-${{matrix.system.compiler.cc}} | |
- name: Set environment variables | |
run: | | |
echo "CC=${{matrix.system.compiler.cc}}" >> $GITHUB_ENV | |
echo "CXX=${{matrix.system.compiler.cxx}}" >> $GITHUB_ENV | |
- name: Build YCM | |
run: | | |
cmake -S .deps/ycm -B .deps/ycm/build | |
cmake --build .deps/ycm/build | |
cmake --install .deps/ycm/build | |
- name: Build YARP | |
run: | | |
cmake -S .deps/yarp -B .deps/yarp/build -DSKIP_ACE=ON -DYARP_DISABLE_VERSION_SOURCE=ON -DENABLE_yarpmod_fakeMotionControl=ON | |
cmake --build .deps/yarp/build | |
cmake --install .deps/yarp/build | |
- name: Build Orocos KDL | |
run: | | |
cmake -S .deps/kdl/orocos_kdl -B .deps/kdl/orocos_kdl/build | |
cmake --build .deps/kdl/orocos_kdl/build | |
cmake --install .deps/kdl/orocos_kdl/build | |
- name: Build SWIG | |
run: | | |
cmake -S .deps/swig -B .deps/swig/build -DWITH_PCRE=OFF | |
cmake --build .deps/swig/build | |
cmake --install .deps/swig/build | |
ln -s /usr/local/bin/swig /usr/local/bin/swig4.0 # shadows /usr/bin/swig4.0 | |
- name: Configure main project | |
run: | | |
. /opt/ros/${{matrix.system.ros}}/setup.sh | |
cmake -S . -B ./build -DCREATE_BINDINGS_PYTHON=ON -DENABLE_examples=ON | |
- name: Compile main project | |
run: cmake --build ./build | |
- name: Install main project | |
run: cmake --install ./build && ldconfig | |
- name: Test main project | |
working-directory: build | |
run: ctest -V | |
- name: Uninstall main project | |
run: cmake --build ./build --target uninstall |