@@ -41,29 +41,62 @@ jobs:
4141 - name : Install Dependencies
4242 run : sudo apt-get -y install ninja-build
4343
44- - name : Create Build Environment
45- run : cmake -E make_directory ${{runner.workspace}}/build
44+ - name : Create Build Environments
45+ run : |
46+ cmake -E make_directory ${{runner.workspace}}/build17
47+ cmake -E make_directory ${{runner.workspace}}/build20
48+ cmake -E make_directory ${{runner.workspace}}/build23
4649
47- - name : Configure
48- working-directory : ${{runner.workspace}}/build
49- run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -G Ninja
50+ - name : Configure C++17
51+ working-directory : ${{runner.workspace}}/build17
52+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 - G Ninja
5053
51- - name : Build Lua ${{ matrix.lua.version }}
52- working-directory : ${{runner.workspace}}/build
54+ - name : Build Lua ${{ matrix.lua.version }} (C++17)
55+ working-directory : ${{runner.workspace}}/build17
5356 run : |
5457 cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
5558 LuaBridgeTests${{ matrix.lua.suffix }} \
5659 LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
5760 LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
5861 LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
5962
60- - name : Test Lua ${{ matrix.lua.version }}
61- working-directory : ${{runner.workspace}}/build/Tests
63+ - name : Test Lua ${{ matrix.lua.version }} (C++17)
64+ working-directory : ${{runner.workspace}}/build17
65+ run : ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
66+
67+ - name : Configure C++20
68+ working-directory : ${{runner.workspace}}/build20
69+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -G Ninja
70+
71+ - name : Build Lua ${{ matrix.lua.version }} (C++20)
72+ working-directory : ${{runner.workspace}}/build20
6273 run : |
63- ./LuaBridgeTests${{ matrix.lua.suffix }}
64- ./LuaBridgeTests${{ matrix.lua.suffix }}LuaC
65- ./LuaBridgeTests${{ matrix.lua.suffix }}Noexcept
66- ./LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
74+ cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
75+ LuaBridgeTests${{ matrix.lua.suffix }} \
76+ LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
77+ LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
78+ LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
79+
80+ - name : Test Lua ${{ matrix.lua.version }} (C++20)
81+ working-directory : ${{runner.workspace}}/build20
82+ run : ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
83+
84+ - name : Configure C++23
85+ working-directory : ${{runner.workspace}}/build23
86+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -G Ninja
87+
88+ - name : Build Lua ${{ matrix.lua.version }} (C++23)
89+ working-directory : ${{runner.workspace}}/build23
90+ run : |
91+ cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
92+ LuaBridgeTests${{ matrix.lua.suffix }} \
93+ LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
94+ LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
95+ LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
96+
97+ - name : Test Lua ${{ matrix.lua.version }} (C++23)
98+ working-directory : ${{runner.workspace}}/build23
99+ run : ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
67100
68101 luajit :
69102 runs-on : ubuntu-latest
@@ -78,25 +111,56 @@ jobs:
78111 sudo apt-get update
79112 sudo apt-get -y install ninja-build
80113
81- - name : Create Build Environment
82- run : cmake -E make_directory ${{runner.workspace}}/build
114+ - name : Create Build Environments
115+ run : |
116+ cmake -E make_directory ${{runner.workspace}}/build17
117+ cmake -E make_directory ${{runner.workspace}}/build20
118+ cmake -E make_directory ${{runner.workspace}}/build23
119+
120+ - name : Configure C++17
121+ working-directory : ${{runner.workspace}}/build17
122+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -G Ninja
123+
124+ - name : Build LuaJIT (C++17)
125+ working-directory : ${{runner.workspace}}/build17
126+ run : |
127+ cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
128+ LuaBridgeTestsLuaJIT \
129+ LuaBridgeTestsLuaJITNoexcept
130+
131+ - name : Test LuaJIT (C++17)
132+ working-directory : ${{runner.workspace}}/build17
133+ run : ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
83134
84- - name : Configure
85- working-directory : ${{runner.workspace}}/build
86- run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -G Ninja
135+ - name : Configure C++20
136+ working-directory : ${{runner.workspace}}/build20
137+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 - G Ninja
87138
88- - name : Build LuaJIT
89- working-directory : ${{runner.workspace}}/build
139+ - name : Build LuaJIT (C++20)
140+ working-directory : ${{runner.workspace}}/build20
90141 run : |
91142 cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
92143 LuaBridgeTestsLuaJIT \
93144 LuaBridgeTestsLuaJITNoexcept
94145
95- - name : Test LuaJIT
96- working-directory : ${{runner.workspace}}/build/Tests
146+ - name : Test LuaJIT (C++20)
147+ working-directory : ${{runner.workspace}}/build20
148+ run : ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
149+
150+ - name : Configure C++23
151+ working-directory : ${{runner.workspace}}/build23
152+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -G Ninja
153+
154+ - name : Build LuaJIT (C++23)
155+ working-directory : ${{runner.workspace}}/build23
97156 run : |
98- ./LuaBridgeTestsLuaJIT
99- ./LuaBridgeTestsLuaJITNoexcept
157+ cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
158+ LuaBridgeTestsLuaJIT \
159+ LuaBridgeTestsLuaJITNoexcept
160+
161+ - name : Test LuaJIT (C++23)
162+ working-directory : ${{runner.workspace}}/build23
163+ run : ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
100164
101165 luau :
102166 runs-on : ubuntu-latest
@@ -109,20 +173,47 @@ jobs:
109173 - name : Install Dependencies
110174 run : sudo apt-get -y install ninja-build
111175
112- - name : Create Build Environment
113- run : cmake -E make_directory ${{runner.workspace}}/build
176+ - name : Create Build Environments
177+ run : |
178+ cmake -E make_directory ${{runner.workspace}}/build17
179+ cmake -E make_directory ${{runner.workspace}}/build20
180+ cmake -E make_directory ${{runner.workspace}}/build23
181+
182+ - name : Configure C++17
183+ working-directory : ${{runner.workspace}}/build17
184+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -G Ninja
185+
186+ - name : Build Luau (C++17)
187+ working-directory : ${{runner.workspace}}/build17
188+ run : cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
189+
190+ - name : Test Luau (C++17)
191+ working-directory : ${{runner.workspace}}/build17
192+ run : ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
114193
115- - name : Configure
116- working-directory : ${{runner.workspace}}/build
117- run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -G Ninja
194+ - name : Configure C++20
195+ working-directory : ${{runner.workspace}}/build20
196+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 - G Ninja
118197
119- - name : Build Luau
120- working-directory : ${{runner.workspace}}/build
198+ - name : Build Luau (C++20)
199+ working-directory : ${{runner.workspace}}/build20
121200 run : cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
122201
123- - name : Test Luau
124- working-directory : ${{runner.workspace}}/build/Tests
125- run : ./LuaBridgeTestsLuau
202+ - name : Test Luau (C++20)
203+ working-directory : ${{runner.workspace}}/build20
204+ run : ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
205+
206+ - name : Configure C++23
207+ working-directory : ${{runner.workspace}}/build23
208+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -G Ninja
209+
210+ - name : Build Luau (C++23)
211+ working-directory : ${{runner.workspace}}/build23
212+ run : cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
213+
214+ - name : Test Luau (C++23)
215+ working-directory : ${{runner.workspace}}/build23
216+ run : ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
126217
127218 ravi :
128219 runs-on : ubuntu-latest
@@ -135,17 +226,44 @@ jobs:
135226 - name : Install Dependencies
136227 run : sudo apt-get -y install libreadline-dev ninja-build
137228
138- - name : Create Build Environment
139- run : cmake -E make_directory ${{runner.workspace}}/build
229+ - name : Create Build Environments
230+ run : |
231+ cmake -E make_directory ${{runner.workspace}}/build17
232+ cmake -E make_directory ${{runner.workspace}}/build20
233+ cmake -E make_directory ${{runner.workspace}}/build23
234+
235+ - name : Configure C++17
236+ working-directory : ${{runner.workspace}}/build17
237+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -G Ninja
238+
239+ - name : Build Ravi (C++17)
240+ working-directory : ${{runner.workspace}}/build17
241+ run : cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
242+
243+ - name : Test Ravi (C++17)
244+ working-directory : ${{runner.workspace}}/build17
245+ run : ctest --parallel $(nproc) -R "LuaBridgeTestsRavi" --output-on-failure
246+
247+ - name : Configure C++20
248+ working-directory : ${{runner.workspace}}/build20
249+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -G Ninja
250+
251+ - name : Build Ravi (C++20)
252+ working-directory : ${{runner.workspace}}/build20
253+ run : cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
254+
255+ - name : Test Ravi (C++20)
256+ working-directory : ${{runner.workspace}}/build20
257+ run : ctest --parallel $(nproc) -R "LuaBridgeTestsRavi" --output-on-failure
140258
141- - name : Configure
142- working-directory : ${{runner.workspace}}/build
143- run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -G Ninja
259+ - name : Configure C++23
260+ working-directory : ${{runner.workspace}}/build23
261+ run : cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 - G Ninja
144262
145- - name : Build Ravi
146- working-directory : ${{runner.workspace}}/build
263+ - name : Build Ravi (C++23)
264+ working-directory : ${{runner.workspace}}/build23
147265 run : cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
148266
149- - name : Test Ravi
150- working-directory : ${{runner.workspace}}/build/Tests
151- run : ./ LuaBridgeTestsRavi
267+ - name : Test Ravi (C++23)
268+ working-directory : ${{runner.workspace}}/build23
269+ run : ctest --parallel $(nproc) -R " LuaBridgeTestsRavi" --output-on-failure
0 commit comments