@@ -70,16 +70,38 @@ jobs:
7070    strategy :
7171      fail-fast : false 
7272      matrix :
73+         cxx_compiler :
74+           - g++-12 
75+           - g++-14 
76+           - clang-14 
77+           - clang-16 
78+           - clang-18 
7379        ros_distro : ${{ fromJson(needs.get_ros_distros.outputs.series) }} 
7480        include :
75-           ${{ fromJson(needs.get_ros_distros.outputs.matrix) }} 
81+           - ${{ fromJson(needs.get_ros_distros.outputs.matrix) }} 
82+           - cxx_compiler : g++-12 
83+             cc_compiler : gcc-12 
84+           - cxx_compiler : g++-14 
85+             cc_compiler : gcc-14 
86+           - cxx_compiler : clang-14 
87+             cc_compiler : clang-14 
88+           - cxx_compiler : clang-16 
89+             cc_compiler : clang-16 
90+           - cxx_compiler : clang-18 
91+             cc_compiler : clang-18 
92+         exclude :
93+           - { ros_distro: humble, cxx_compiler: g++-14 } 
94+           - { ros_distro: humble, cxx_compiler: clang-16 } 
95+           - { ros_distro: humble, cxx_compiler: clang-18 } 
96+ 
7697    container :
7798      image : rostooling/setup-ros-docker:${{ matrix.docker_image }} 
7899    steps :
79100      - name : Install dependencies 
80101        run : | 
81102          sudo apt-get update 
82103          sudo apt-get -y install policykit-1 libgtk2.0-common screen uml-utilities libc6-dev libicu-dev gcc python3 python3-pip 
104+           sudo apt-get -y install ${{ matrix.cc_compiler }} ${{ matrix.cxx_compiler }} 
83105          mkdir renode_portable 
84106          wget https://builds.renode.io/renode-latest.linux-portable.tar.gz 
85107          tar xf  renode-latest.linux-portable.tar.gz -C renode_portable --strip-components=1 
@@ -96,15 +118,7 @@ jobs:
96118          package-name : usb_cam 
97119          target-ros2-distro : ${{ matrix.ros_distro }} 
98120          vcs-repo-file-url : " " 
99-           colcon-defaults : | 
100-             { 
101-               "build": { 
102-                 "mixin": ["coverage-gcc"] 
103-               } 
104-             } 
105- #  If possible, pin the repository in the workflow to a specific commit to avoid
106-           #  changes in colcon-mixin-repository from breaking your tests.
107-           colcon-mixin-repository : https://raw.githubusercontent.com/colcon/colcon-mixin-repository/1ddb69bedfd1f04c2f000e95452f7c24a4d6176b/index.yaml 
121+           extra-cmake-args : -DCMAKE_C_COMPILER=${{ matrix.cc_compiler }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} 
108122      #  Compile again, this time enabling integration tests
109123      - name : Build integration tests 
110124        shell : bash 
0 commit comments