CI Ubuntu 26.04 / ROS2 Lyrical and Rolling #1724
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: CMake-ROS | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| branches: | |
| - '**' | |
| env: | |
| # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
| BUILD_TYPE: Release | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| build: | |
| # The CMake configure and build commands are platform agnostic and should work equally | |
| # well on Windows or Mac. You can convert this to a matrix build if you need | |
| # cross-platform coverage. | |
| # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | |
| name: ${{ matrix.ros_distribution }}-${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ros_distribution: [ humble, jazzy, kilted, lyrical, rolling ] | |
| include: | |
| - ros_distribution: 'humble' | |
| os: ubuntu-22.04 | |
| - ros_distribution: 'jazzy' | |
| os: ubuntu-24.04 | |
| - ros_distribution: 'kilted' | |
| os: ubuntu-24.04 | |
| - ros_distribution: 'lyrical' | |
| os: ubuntu-26.04 | |
| - ros_distribution: 'rolling' | |
| os: ubuntu-26.04 | |
| steps: | |
| - name: Setup ROS2 | |
| # https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html | |
| run: | | |
| sudo apt install software-properties-common | |
| sudo add-apt-repository universe | |
| sudo apt update && sudo apt install curl -y | |
| export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}') | |
| curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb" | |
| sudo apt install /tmp/ros2-apt-source.deb | |
| sudo apt update | |
| - uses: ros-tooling/setup-ros@v0.7 | |
| with: | |
| required-ros-distributions: ${{ matrix.ros_distribution }} | |
| - uses: actions/checkout@v4 | |
| - name: Point rosdep to latest Rolling on Noble until github runners support ubuntu 26.04 | |
| if: matrix.ros_distribution == 'rolling' | |
| run: | | |
| echo "ROSDISTRO_INDEX_URL=https://raw.githubusercontent.com/ros/rosdistro/6527fa694360d609c1491528ed50437bd853af5b/index-v4.yaml" >> $GITHUB_ENV | |
| - name: Install dependencies | |
| run: | | |
| source /opt/ros/${{ matrix.ros_distribution }}/setup.bash | |
| rosdep update | |
| rosdep install --from-paths ${{github.workspace}} -y | |
| - name: Configure CMake | |
| run: | | |
| source /opt/ros/${{ matrix.ros_distribution }}/setup.bash | |
| cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | |
| - name: Build | |
| run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
| - name: Info | |
| working-directory: ${{github.workspace}}/build/bin | |
| run: | | |
| source /opt/ros/${{ matrix.ros_distribution }}/setup.bash | |
| ./rtabmap-console --version | |