@@ -70,16 +70,41 @@ jobs:
7070    strategy :
7171      fail-fast : false 
7272      matrix :
73+         cxx_compiler :
74+           - g++-10 
75+           - g++-12 
76+           - g++-14 
77+           - clang-14 
78+           - clang-16 
79+           - clang-18 
7380        ros_distro : ${{ fromJson(needs.get_ros_distros.outputs.series) }} 
7481        include :
75-           ${{ fromJson(needs.get_ros_distros.outputs.matrix) }} 
82+           - ${{ fromJson(needs.get_ros_distros.outputs.matrix) }} 
83+           - cxx_compiler : g++-10 
84+             cc_compiler : gcc-10 
85+           - cxx_compiler : g++-12 
86+             cc_compiler : gcc-12 
87+           - cxx_compiler : g++-14 
88+             cc_compiler : gcc-14 
89+           - cxx_compiler : clang-14 
90+             cc_compiler : clang-14 
91+           - cxx_compiler : clang-16 
92+             cc_compiler : clang-16 
93+           - cxx_compiler : clang-18 
94+             cc_compiler : clang-18 
95+         exclude :
96+           - { ros_distro: humble, cxx_compiler: g++-14 } 
97+           - { ros_distro: humble, cxx_compiler: clang-16 } 
98+           - { ros_distro: humble, cxx_compiler: clang-18 } 
99+ 
76100    container :
77101      image : rostooling/setup-ros-docker:${{ matrix.docker_image }} 
78102    steps :
79103      - name : Install dependencies 
80104        run : | 
81105          sudo apt-get update 
82106          sudo apt-get -y install policykit-1 libgtk2.0-common screen uml-utilities libc6-dev libicu-dev gcc python3 python3-pip 
107+           sudo apt-get -y install ${{ matrix.compiler }} 
83108          mkdir renode_portable 
84109          wget https://builds.renode.io/renode-latest.linux-portable.tar.gz 
85110          tar xf  renode-latest.linux-portable.tar.gz -C renode_portable --strip-components=1 
@@ -96,15 +121,7 @@ jobs:
96121          package-name : usb_cam 
97122          target-ros2-distro : ${{ matrix.ros_distro }} 
98123          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 
124+           extra-cmake-args : -DCMAKE_C_COMPILER=${{ matrix.cc_compiler }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} 
108125      #  Compile again, this time enabling integration tests
109126      - name : Build integration tests 
110127        shell : bash 
0 commit comments