diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 77dc3a13..8faf39a1 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -70,9 +70,21 @@ jobs: strategy: fail-fast: false matrix: + compiler: + - g++-10 + - g++-12 + - g++-14 + - clang-14 + - clang-16 + - clang-18 ros_distro: ${{ fromJson(needs.get_ros_distros.outputs.series) }} include: ${{ fromJson(needs.get_ros_distros.outputs.matrix) }} + exclude: + - { ros_distro: humble, compiler: g++-14 } + - { ros_distro: humble, compiler: clang-16 } + - { ros_distro: humble, compiler: clang-18 } + container: image: rostooling/setup-ros-docker:${{ matrix.docker_image }} steps: @@ -80,6 +92,7 @@ jobs: run: | sudo apt-get update sudo apt-get -y install policykit-1 libgtk2.0-common screen uml-utilities libc6-dev libicu-dev gcc python3 python3-pip + sudo apt-get -y install ${{ matrix.compiler }} mkdir renode_portable wget https://builds.renode.io/renode-latest.linux-portable.tar.gz tar xf renode-latest.linux-portable.tar.gz -C renode_portable --strip-components=1 @@ -96,15 +109,7 @@ jobs: package-name: usb_cam target-ros2-distro: ${{ matrix.ros_distro }} vcs-repo-file-url: "" - colcon-defaults: | - { - "build": { - "mixin": ["coverage-gcc"] - } - } - # If possible, pin the repository in the workflow to a specific commit to avoid - # changes in colcon-mixin-repository from breaking your tests. - colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/1ddb69bedfd1f04c2f000e95452f7c24a4d6176b/index.yaml + extra-cmake-args: -DCMAKE_C_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} # Compile again, this time enabling integration tests - name: Build integration tests shell: bash