99 pull_request :
1010 workflow_dispatch :
1111 schedule :
12- - cron : ' 30 15 * * *'
12+ - cron : ' 15 12 * * 2'
13+
14+ concurrency :
15+ group : ${{format('{0}:{1}', github.repository, github.ref)}}
16+ cancel-in-progress : true
1317
1418jobs :
1519 beman-submodule-check :
16- uses : bemanproject/infra-workflows/.github/workflows/reusable-beman-submodule-check.yml@1.2.1
20+ uses : bemanproject/infra-workflows/.github/workflows/reusable-beman-submodule-check.yml@1.7.2
21+
22+ copier-test :
23+ runs-on : ubuntu-latest
24+ container :
25+ image : ghcr.io/bemanproject/infra-containers-gcc:latest
26+ steps :
27+ - uses : actions/checkout@v4
28+ - name : Install uv
29+ shell : bash
30+ run : |
31+ curl -LsSf https://astral.sh/uv/install.sh | sh
32+ echo "$HOME/.local/bin" >> $GITHUB_PATH
33+ - name : Test Copier Template Variants
34+ shell : bash
35+ env :
36+ GITHUB_ACTIONS : true
37+ # gcc-release will use GCC 15 which supports C++23 modules appropriately in this container
38+ run : ./copier/test_standard_project.sh gcc-release
1739
40+ copier-cmake-matrix :
41+ runs-on : ubuntu-latest
42+ container :
43+ image : ghcr.io/bemanproject/infra-containers-gcc:latest
44+ strategy :
45+ fail-fast : false
46+ matrix :
47+ cmake_version : ["3.30.9", "3.31.10", "4.0.3", "4.1.3", "4.2.3", "4.3.2"]
48+ steps :
49+ - uses : actions/checkout@v4
50+ - name : Install uv
51+ shell : bash
52+ run : |
53+ curl -LsSf https://astral.sh/uv/install.sh | sh
54+ echo "$HOME/.local/bin" >> $GITHUB_PATH
55+ - name : Test Copier Template Variants Matrix
56+ shell : bash
57+ env :
58+ GITHUB_ACTIONS : true
59+ # Run across our experimental boundaries
60+ run : ./copier/test_cmake_matrix.sh gcc-release ${{ matrix.cmake_version }}
1861 preset-test :
19- uses : bemanproject/infra-workflows/.github/workflows/reusable-beman-preset-test.yml@1.2.1
62+ uses : bemanproject/infra-workflows/.github/workflows/reusable-beman-preset-test.yml@1.7.2
2063 with :
2164 matrix_config : >
2265 [
@@ -31,25 +74,50 @@ jobs:
3174 ]
3275
3376 build-and-test :
34- uses : bemanproject/infra-workflows/.github/workflows/reusable-beman-build-and-test.yml@1.2.1
77+ uses : bemanproject/infra-workflows/.github/workflows/reusable-beman-build-and-test.yml@1.7.2
3578 with :
3679 matrix_config : >
3780 {
3881 "gcc": [
39- { "versions": ["15 "],
82+ { "versions": ["16 "],
4083 "tests": [
4184 { "cxxversions": ["c++26"],
4285 "tests": [
4386 { "stdlibs": ["libstdc++"],
4487 "tests": [
4588 "Debug.Default", "Release.Default", "Release.TSan",
4689 "Release.MaxSan", "Debug.Werror",
47- "Debug.Coverage"
90+ "Debug.Coverage", "Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
4891 ]
4992 }
5093 ]
5194 },
52- { "cxxversions": ["c++23", "c++20", "c++17"],
95+ { "cxxversions": ["c++23"],
96+ "tests": [
97+ { "stdlibs": ["libstdc++"],
98+ "tests": [
99+ "Release.Default", "Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
100+ ]
101+ }
102+ ]
103+ },
104+ { "cxxversions": ["c++20", "c++17"],
105+ "tests": [{ "stdlibs": ["libstdc++"], "tests": ["Release.Default"]}]
106+ }
107+ ]
108+ },
109+ { "versions": ["15"],
110+ "tests": [
111+ { "cxxversions": ["c++26", "c++23"],
112+ "tests": [
113+ { "stdlibs": ["libstdc++"],
114+ "tests": [
115+ "Release.Default", "Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
116+ ]
117+ }
118+ ]
119+ },
120+ { "cxxversions": ["c++20", "c++17"],
53121 "tests": [{ "stdlibs": ["libstdc++"], "tests": ["Release.Default"]}]
54122 }
55123 ]
@@ -71,26 +139,36 @@ jobs:
71139 }
72140 ],
73141 "clang": [
74- { "versions": ["21 "],
142+ { "versions": ["22 "],
75143 "tests": [
76144 {"cxxversions": ["c++26"],
77145 "tests": [
78146 { "stdlibs": ["libstdc++", "libc++"],
79147 "tests": [
80148 "Debug.Default", "Release.Default", "Release.TSan",
81- "Release.MaxSan", "Debug.Werror"
149+ "Release.MaxSan", "Debug.Werror",
150+ "Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
82151 ]
83152 }
84153 ]
85154 },
86- { "cxxversions": ["c++23", "c++20", "c++17"],
155+ { "cxxversions": ["c++23"],
156+ "tests": [
157+ { "stdlibs": ["libstdc++", "libc++"],
158+ "tests": [
159+ "Release.Default", "Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
160+ ]
161+ }
162+ ]
163+ },
164+ { "cxxversions": ["c++20", "c++17"],
87165 "tests": [
88166 {"stdlibs": ["libstdc++", "libc++"], "tests": ["Release.Default"]}
89167 ]
90168 }
91169 ]
92170 },
93- { "versions": ["20", "19"],
171+ { "versions": ["21", " 20", "19"],
94172 "tests": [
95173 { "cxxversions": ["c++26", "c++23", "c++20", "c++17"],
96174 "tests": [
@@ -99,7 +177,17 @@ jobs:
99177 }
100178 ]
101179 },
102- { "versions": ["18", "17"],
180+ { "versions": ["18"],
181+ "tests": [
182+ { "cxxversions": ["c++26", "c++23", "c++20", "c++17"],
183+ "tests": [{"stdlibs": ["libc++"], "tests": ["Release.Default"]}]
184+ },
185+ { "cxxversions": ["c++23", "c++20", "c++17"],
186+ "tests": [{"stdlibs": ["libstdc++"], "tests": ["Release.Default"]}]
187+ }
188+ ]
189+ },
190+ { "versions": ["17"],
103191 "tests": [
104192 { "cxxversions": ["c++26", "c++23", "c++20", "c++17"],
105193 "tests": [{"stdlibs": ["libc++"], "tests": ["Release.Default"]}]
@@ -125,7 +213,10 @@ jobs:
125213 { "cxxversions": ["c++23"],
126214 "tests": [
127215 { "stdlibs": ["stl"],
128- "tests": ["Debug.Default", "Release.Default", "Release.MaxSan"]
216+ "tests": [
217+ "Debug.Default", "Release.Default", "Release.MaxSan",
218+ "Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
219+ ]
129220 }
130221 ]
131222 }
@@ -134,13 +225,17 @@ jobs:
134225 ]
135226 }
136227
137- install-test :
138- uses : bemanproject/infra-workflows/.github/workflows/reusable-beman-install-test .yml@1.2.1
228+ vcpkg-ci :
229+ uses : bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-ci .yml@1.7.2
139230 with :
140- image : ghcr.io/bemanproject/infra-containers-gcc:latest
141- cxx_standard : 26
231+ port_name : beman-expected
232+ feature_combinations : |
233+ [
234+ {"features": {}},
235+ {"features": {"modules": true}}
236+ ]
142237
143238 create-issue-when-fault :
144239 needs : [preset-test, build-and-test]
145240 if : failure() && github.event_name == 'schedule'
146- uses : bemanproject/infra-workflows/.github/workflows/reusable-beman-create-issue-when-fault.yml@1.2.1
241+ uses : bemanproject/infra-workflows/.github/workflows/reusable-beman-create-issue-when-fault.yml@1.7.2
0 commit comments