@@ -16,58 +16,98 @@ jobs:
1616      fail-fast : false 
1717      matrix :
1818        compiler :
19-           - { tool: gcc, ver: 7 } 
20-           - { tool: gcc, ver: 8 } 
21-           - { tool: gcc, ver: 9 } 
22-           - { tool: gcc, ver: 10 } 
23-           - { tool: gcc, ver: 11 } 
24-           - { tool: gcc, ver: 12 } 
25-           - { tool: gcc, ver: 13 } 
26-           - { tool: clang, ver: 7 } 
27-           - { tool: clang, ver: 8 } 
28-           - { tool: clang, ver: 9 } 
29-           - { tool: clang, ver: 10 } 
30-           - { tool: clang, ver: 11 } 
31-           - { tool: clang, ver: 12 } 
32-           - { tool: clang, ver: 13 } 
33-           - { tool: clang, ver: 14 } 
34-           - { tool: clang, ver: 15 } 
19+           - { name: GCC, ver: 7 } 
20+           - { name: GCC, ver: 8 } 
21+           - { name: GCC, ver: 9 } 
22+           - { name: GCC, ver: 10 } 
23+           - { name: GCC, ver: 11 } 
24+           - { name: GCC, ver: 12 } 
25+           - { name: GCC, ver: 13 } 
26+           - { name: GCC, ver: 14 } 
27+           - { name: Clang, ver: 7 } 
28+           - { name: Clang, ver: 8 } 
29+           - { name: Clang, ver: 9 } 
30+           - { name: Clang, ver: 10 } 
31+           - { name: Clang, ver: 11 } 
32+           - { name: Clang, ver: 12 } 
33+           - { name: Clang, ver: 13 } 
34+           - { name: Clang, ver: 14 } 
35+           - { name: Clang, ver: 15 } 
36+           - { name: Clang, ver: 16 } 
37+           - { name: Clang, ver: 17 } 
38+           - { name: Clang, ver: 18 } 
3539        build_type : [ Release ] 
36-         os : [ ubuntu-20.04, ubuntu-22.04 ] 
37-         std : [ 17 ] 
40+         os : [ ubuntu-20.04, ubuntu-22.04, ubuntu-24.04  ] 
41+         std : [ 17, 20, 23  ] 
3842        library_type : [ Static ] 
3943        include :
40-           - compiler : { tool: gcc  } 
44+           - compiler : { name: GCC  } 
4145            cxx : g++ 
4246            cc : gcc 
47+             packages : ' gcc-{0} g++-{0}' 
4348            generator : Ninja 
44-           - compiler : { tool: clang  } 
49+           - compiler : { name: Clang  } 
4550            cxx : clang++ 
4651            cc : clang 
52+             packages : ' clang-{0}' 
4753            generator : Ninja 
4854        exclude :
49-           - { os: ubuntu-20.04, compiler: { tool: gcc, ver: 12 } } 
50-           - { os: ubuntu-20.04, compiler: { tool: gcc, ver: 13 } } 
51-           - { os: ubuntu-20.04, compiler: { tool: clang, ver: 13 } } 
52-           - { os: ubuntu-20.04, compiler: { tool: clang, ver: 14 } } 
53-           - { os: ubuntu-20.04, compiler: { tool: clang, ver: 15 } } 
54-           - { os: ubuntu-22.04, compiler: { tool: gcc, ver: 7 } } 
55-           - { os: ubuntu-22.04, compiler: { tool: gcc, ver: 8 } } 
56-           - { os: ubuntu-22.04, compiler: { tool: clang, ver: 7 } } 
57-           - { os: ubuntu-22.04, compiler: { tool: clang, ver: 8 } } 
58-           - { os: ubuntu-22.04, compiler: { tool: clang, ver: 9 } } 
59-           - { os: ubuntu-22.04, compiler: { tool: clang, ver: 10 } } 
55+           - { os: ubuntu-20.04, compiler: { name: GCC, ver: 11 } } 
56+           - { os: ubuntu-20.04, compiler: { name: GCC, ver: 12 } } 
57+           - { os: ubuntu-20.04, compiler: { name: GCC, ver: 13 } } 
58+           - { os: ubuntu-20.04, compiler: { name: GCC, ver: 14 } } 
59+           - { os: ubuntu-20.04, compiler: { name: Clang, ver: 13 } } 
60+           - { os: ubuntu-20.04, compiler: { name: Clang, ver: 14 } } 
61+           - { os: ubuntu-20.04, compiler: { name: Clang, ver: 15 } } 
62+           - { os: ubuntu-20.04, compiler: { name: Clang, ver: 16 } } 
63+           - { os: ubuntu-20.04, compiler: { name: Clang, ver: 17 } } 
64+           - { os: ubuntu-20.04, compiler: { name: Clang, ver: 18 } } 
65+           - { os: ubuntu-22.04, compiler: { name: GCC, ver: 7 } } 
66+           - { os: ubuntu-22.04, compiler: { name: GCC, ver: 8 } } 
67+           - { os: ubuntu-22.04, compiler: { name: GCC, ver: 13 } } 
68+           - { os: ubuntu-22.04, compiler: { name: GCC, ver: 14 } } 
69+           - { os: ubuntu-22.04, compiler: { name: Clang, ver: 7 } } 
70+           - { os: ubuntu-22.04, compiler: { name: Clang, ver: 8 } } 
71+           - { os: ubuntu-22.04, compiler: { name: Clang, ver: 9 } } 
72+           - { os: ubuntu-22.04, compiler: { name: Clang, ver: 10 } } 
73+           - { os: ubuntu-22.04, compiler: { name: Clang, ver: 16 } } 
74+           - { os: ubuntu-22.04, compiler: { name: Clang, ver: 17 } } 
75+           - { os: ubuntu-22.04, compiler: { name: Clang, ver: 18 } } 
76+           - { os: ubuntu-24.04, compiler: { name: GCC, ver: 7 } } 
77+           - { os: ubuntu-24.04, compiler: { name: GCC, ver: 8 } } 
78+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 7 } } 
79+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 8 } } 
80+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 9 } } 
81+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 10 } } 
82+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 11 } } 
83+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 12 } } 
84+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 13 } } 
85+           - { compiler: { name: GCC, ver: 7 }, std: 20 } 
86+           - { compiler: { name: GCC, ver: 7 }, std: 23 } 
87+           - { compiler: { name: GCC, ver: 8 }, std: 23 } 
88+           - { compiler: { name: GCC, ver: 9 }, std: 23 } 
89+           - { compiler: { name: GCC, ver: 10 }, std: 23 } 
90+           - { compiler: { name: Clang, ver: 7 }, std: 20 } 
91+           - { compiler: { name: Clang, ver: 7 }, std: 23 } 
92+           - { compiler: { name: Clang, ver: 8 }, std: 20 } 
93+           - { compiler: { name: Clang, ver: 8 }, std: 23 } 
94+           - { compiler: { name: Clang, ver: 9 }, std: 23 } 
95+           - { compiler: { name: Clang, ver: 10 }, std: 23 } 
96+           - { compiler: { name: Clang, ver: 11 }, std: 23 } 
97+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 14 }, std: 20 }  #  gtest broken for now
98+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 14 }, std: 23 }  #  gtest broken for now
99+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 15 }, std: 20 }  #  gtest broken for now
100+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 15 }, std: 23 }  #  gtest broken for now
101+           - { os: ubuntu-24.04, compiler: { name: Clang, ver: 17 }, std: 23 }  #  gtest broken for now
60102
61103    runs-on : ${{matrix.os}} 
62104    steps :
63105      - uses : actions/checkout@v4 
64106
65107      - name : Create Build Environment 
66-         env :
67-           PACKAGES : ${{ matrix.compiler.tool == 'gcc' &&  format('gcc-{0} g++-{0}', matrix.compiler.ver) || format('{0}-{1}', matrix.compiler.tool, matrix.compiler.ver) }} 
68108        run : | 
69109          sudo apt update 
70-           sudo apt install ${{env.PACKAGES }} ninja-build -y 
110+           sudo apt install ${{format(matrix.packages, matrix.compiler.ver) }} ninja-build -y 
71111          sudo apt install locales-all 
72112          cmake -E make_directory ${{runner.workspace}}/build 
73113
0 commit comments