name: ROS Translation Node Tests on: push: branches: - 'main' paths-ignore: - 'docs/**' pull_request: branches: - '**' paths-ignore: - 'docs/**' permissions: contents: read defaults: run: shell: bash concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build_and_test: name: Build and test [${{ matrix.config.ros_version }}] runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false,extras=s3-cache] strategy: fail-fast: false matrix: config: - {ros_version: "humble", ubuntu: "jammy"} - {ros_version: "jazzy", ubuntu: "noble"} container: image: ros:${{ matrix.config.ros_version }}-ros-base-${{ matrix.config.ubuntu }} steps: - uses: runs-on/action@v2 - uses: actions/checkout@v6 with: fetch-depth: 0 - name: Configure Git Safe Directory run: git config --system --add safe.directory '*' - uses: ./.github/actions/setup-ccache id: ccache with: cache-key-prefix: ccache-ros-translation-${{ matrix.config.ros_version }} max-size: 150M base-dir: /ros_ws install-ccache: 'true' - name: Check .msg file versioning if: github.event_name == 'pull_request' run: | ./Tools/ci/check_msg_versioning.sh ${{ github.event.pull_request.base.sha }} ${{github.event.pull_request.head.sha}} - name: Build - Translation Node run: | ros_ws=/ros_ws mkdir -p $ros_ws/src ./Tools/copy_to_ros_ws.sh $ros_ws cd $ros_ws source /opt/ros/${{ matrix.config.ros_version }}/setup.sh colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache --symlink-install --event-handlers=console_cohesion+ - name: Test - Translation Node Unit Tests run: | source /ros_ws/install/setup.sh /ros_ws/build/translation_node/translation_node_unit_tests - uses: ./.github/actions/save-ccache if: always() with: cache-primary-key: ${{ steps.ccache.outputs.cache-primary-key }}