@@ -70,16 +70,39 @@ 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+           - { cc_compiler: gcc-12, cxx_compiler: g++-12 } 
97+ 
7698    container :
7799      image : rostooling/setup-ros-docker:${{ matrix.docker_image }} 
78100    steps :
79101      - name : Install dependencies 
80102        run : | 
81103          sudo apt-get update 
82104          sudo apt-get -y install policykit-1 libgtk2.0-common screen uml-utilities libc6-dev libicu-dev gcc python3 python3-pip 
105+           sudo apt-get -y install ${{ matrix.cc_compiler }} ${{ matrix.cxx_compiler }} 
83106          mkdir renode_portable 
84107          wget https://builds.renode.io/renode-latest.linux-portable.tar.gz 
85108          tar xf  renode-latest.linux-portable.tar.gz -C renode_portable --strip-components=1 
@@ -96,15 +119,7 @@ jobs:
96119          package-name : usb_cam 
97120          target-ros2-distro : ${{ matrix.ros_distro }} 
98121          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 
122+           extra-cmake-args : -DCMAKE_C_COMPILER=${{ matrix.cc_compiler }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} 
108123      #  Compile again, this time enabling integration tests
109124      - name : Build integration tests 
110125        shell : bash 
0 commit comments