@@ -36,98 +36,192 @@ jobs:
3636 fail-fast : false
3737 matrix :
3838 include :
39- - name : 🐧 Linux (GCC, Makefiles)
39+ # ==================== COMMON BASES (anchors) ====================
40+ - &linux-test
4041 os : ubuntu-22.04
4142 platform : linux
42- config-flags : -DCMAKE_BUILD_TYPE=Release
43- artifact-name : godot-cpp-linux-glibc2.27-x86_64-cmake-release
44- artifact-path : cmake-build/bin/libgodot-cpp.linux.template_release.x86_64.a
45- run-tests : true
46- godot-test-arch : " linux.x86_64"
47- godot-master-workflow : linux_builds.yml
48- godot-master-artifact : linux-editor-mono
49-
50- - name : 🐧 Linux (GCC, Makefiles) for Godot 4.6
51- os : ubuntu-22.04
52- platform : linux
53- config-flags :
54- -DCMAKE_BUILD_TYPE=Release
55- -DGODOTCPP_API_VERSION=4.6
56- artifact-name : godot-cpp-linux-glibc2.27-x86_64-cmake-release-godot46
57- artifact-path : cmake-build/bin/libgodot-cpp.linux.template_release.x86_64.a
43+ variant : glibc2.27-x86_64
44+ abi : x86_64
45+ ext : a
5846 run-tests : true
59- godot-test-versions : " 4.6-stable"
6047 godot-test-arch : " linux.x86_64"
6148 godot-master-workflow : linux_builds.yml
6249 godot-master-artifact : linux-editor-mono
50+ godot-test-versions : " "
6351
64- - name : 🏁 Windows (x86_64, MSVC)
52+ - &windows-test
6553 os : windows-2022
6654 platform : windows
67- compiler : msvc
68- build-flags : --config Release
69- artifact-name : godot-cpp-windows-msvc2022-x86_64-cmake-release
70- artifact-path : cmake-build/bin/libgodot-cpp.windows.template_release.x86_64.lib
55+ variant : msvc2022-x86_64
56+ abi : x86_64
57+ ext : lib
7158 run-tests : true
7259 godot-test-arch : " win64.exe"
7360 godot-master-workflow : windows_builds.yml
7461 godot-master-artifact : windows-editor
62+ godot-test-versions : " "
7563
76- - name : 🏁 Windows (x86_64, MinGW, Ninja)
77- os : windows-2022
78- platform : windows
79- compiler : mingw
80- config-flags :
81- -GNinja -DCMAKE_BUILD_TYPE=Release
82- -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=c++
83- artifact-name : godot-cpp-windows-mingw-x86_64-cmake-release
84- artifact-path : cmake-build/bin/libgodot-cpp.windows.template_release.x86_64.a
85- run-tests : true
86- godot-test-arch : " win64.exe"
87- godot-master-workflow : windows_builds.yml
88- godot-master-artifact : windows-editor
89-
90- - name : 🍎 macOS (universal, Makefiles)
64+ - &macos-test
9165 os : macos-latest
9266 platform : macos
93- config-flags : -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64"
94- artifact-name : godot-cpp-macos- universal-cmake-release
95- artifact-path : cmake-build/bin/libgodot-cpp.macos.template_release.universal. a
67+ variant : universal
68+ abi : universal
69+ ext : a
9670 run-tests : true
9771 godot-test-arch : " macos.universal"
9872 godot-master-workflow : macos_builds.yml
9973 godot-master-artifact : macos-editor
74+ godot-test-versions : " "
10075
101- # Non-test platforms
102- - name : 🤖 Android (arm64, Ninja)
76+ - &android-base
10377 os : ubuntu-22.04
10478 platform : android
79+ variant : arm64
80+ abi : arm64
81+ ext : a
82+ run-tests : false
83+
84+ - &ios-base
85+ os : macos-latest
86+ platform : ios
87+ variant : arm64
88+ abi : arm64
89+ ext : a
90+ run-tests : false
91+
92+ - &web-base
93+ os : ubuntu-22.04
94+ platform : web
95+ variant : wasm32
96+ abi : wasm32
97+ ext : a
98+ run-tests : false
99+
100+ # ==================== TEST PLATFORMS ====================
101+ - << : *linux-test
102+ name : 🐧 Linux (GCC, Makefiles)
103+ config-flags : -DCMAKE_BUILD_TYPE=Release
104+
105+ - << : *linux-test
106+ name : 🐧 Linux (GCC, Makefiles) for Godot 4.6
107+ config-flags :
108+ -DCMAKE_BUILD_TYPE=Release
109+ -DGODOTCPP_API_VERSION=4.6
110+ godot-test-versions : " 4.6-stable"
111+ extra-artifact-suffix : -godot46
112+
113+ - << : *linux-test
114+ name : 🐧 Linux (GCC, Makefiles) for Godot 4.5
115+ config-flags :
116+ -DCMAKE_BUILD_TYPE=Release
117+ -DGODOTCPP_API_VERSION=4.5
118+ godot-test-versions : " 4.5-stable 4.6-stable"
119+ extra-artifact-suffix : -godot45
120+
121+ - << : *linux-test
122+ name : 🐧 Linux (GCC, Makefiles) for Godot 4.4
123+ config-flags :
124+ -DCMAKE_BUILD_TYPE=Release
125+ -DGODOTCPP_API_VERSION=4.4
126+ godot-test-versions : " 4.4-stable 4.5-stable 4.6-stable"
127+ extra-artifact-suffix : -godot44
128+
129+ - << : *linux-test
130+ name : 🐧 Linux (GCC, Makefiles) for Godot 4.3
131+ config-flags :
132+ -DCMAKE_BUILD_TYPE=Release
133+ -DGODOTCPP_API_VERSION=4.3
134+ godot-test-versions : " 4.3-stable 4.4-stable 4.5-stable 4.6-stable"
135+ extra-artifact-suffix : -godot43
136+
137+ - << : *windows-test
138+ name : 🏁 Windows (x86_64, MSVC)
139+ compiler : msvc
140+ build-flags : --config Release
141+
142+ - << : *windows-test
143+ name : 🏁 Windows (x86_64, MinGW, Ninja)
144+ compiler : mingw
145+ config-flags :
146+ -GNinja -DCMAKE_BUILD_TYPE=Release
147+ -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=c++
148+ variant : mingw-x86_64
149+ ext : a
150+
151+ - << : *windows-test
152+ name : 🏁 Windows (x86_64, MinGW, Ninja) for Godot 4.6
153+ compiler : mingw
154+ config-flags :
155+ -GNinja -DCMAKE_BUILD_TYPE=Release
156+ -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=c++
157+ -DGODOTCPP_API_VERSION=4.6
158+ variant : mingw-x86_64
159+ ext : a
160+ godot-test-versions : " 4.6-stable"
161+ extra-artifact-suffix : -godot46
162+
163+ - << : *windows-test
164+ name : 🏁 Windows (x86_64, MinGW, Ninja) for Godot 4.5
165+ compiler : mingw
166+ config-flags :
167+ -GNinja -DCMAKE_BUILD_TYPE=Release
168+ -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=c++
169+ -DGODOTCPP_API_VERSION=4.5
170+ variant : mingw-x86_64
171+ ext : a
172+ godot-test-versions : " 4.5-stable 4.6-stable"
173+ extra-artifact-suffix : -godot45
174+
175+
176+ - << : *windows-test
177+ name : 🏁 Windows (x86_64, MinGW, Ninja) for Godot 4.4
178+ compiler : mingw
179+ config-flags :
180+ -GNinja -DCMAKE_BUILD_TYPE=Release
181+ -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=c++
182+ -DGODOTCPP_API_VERSION=4.4
183+ variant : mingw-x86_64
184+ ext : a
185+ godot-test-versions : " 4.4-stable 4.5-stable 4.6-stable"
186+ extra-artifact-suffix : -godot44
187+
188+ - << : *windows-test
189+ name : 🏁 Windows (x86_64, MinGW, Ninja) for Godot 4.3
190+ compiler : mingw
191+ config-flags :
192+ -GNinja -DCMAKE_BUILD_TYPE=Release
193+ -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=c++
194+ -DGODOTCPP_API_VERSION=4.3
195+ variant : mingw-x86_64
196+ ext : a
197+ godot-test-versions : " 4.3-stable 4.4-stable 4.5-stable 4.6-stable"
198+ extra-artifact-suffix : -godot43
199+
200+ - << : *macos-test
201+ name : 🍎 macOS (universal, Makefiles)
202+ config-flags : -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64"
203+
204+ # ==================== NON-TEST PLATFORMS ====================
205+ - << : *android-base
206+ name : 🤖 Android (arm64, Ninja)
105207 config-flags :
106208 -G Ninja -DCMAKE_BUILD_TYPE=Release
107209 --toolchain ${ANDROID_HOME}/ndk/28.1.13356709/build/cmake/android.toolchain.cmake
108210 -DANDROID_PLATFORM=24 -DANDROID_ABI=arm64-v8a
109- artifact-name : godot-cpp-android-arm64-cmake-release
110- artifact-path : cmake-build/bin/libgodot-cpp.android.template_release.arm64.a
111211
112- - name : 🍏 iOS (arm64, XCode)
113- os : macos-latest
114- platform : ios
212+ - << : *ios-base
213+ name : 🍏 iOS (arm64, XCode)
115214 config-flags :
116215 -G Xcode
117216 --toolchain cmake/ios.toolchain.cmake
118217 -DPLATFORM=OS64
119218 build-flags : --config Release
120- artifact-name : godot-cpp-ios-arm64-cmake-release
121- artifact-path : cmake-build/bin/libgodot-cpp.ios.template_release.arm64.a
122219
123- - name : 🌐 Web (wasm32, Ninja)
124- os : ubuntu-22.04
125- platform : web
220+ - << : *web-base
221+ name : 🌐 Web (wasm32, Ninja)
126222 config-flags :
127223 -G Ninja -DCMAKE_BUILD_TYPE=Release
128224 --toolchain ${EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake
129- artifact-name : godot-cpp-web-wasm32-cmake-release
130- artifact-path : cmake-build/bin/libgodot-cpp.web.template_release.wasm32.a
131225
132226 steps :
133227 - name : Checkout
@@ -182,7 +276,7 @@ jobs:
182276
183277 - name : Download latest Godot artifacts
184278 uses : dsnopek/action-download-artifact@1322f74e2dac9feed2ee76a32d9ae1ca3b4cf4e9
185- if : matrix.run-tests && env.GODOT_TEST_VERSION == 'master'
279+ if : matrix.run-tests && matrix.godot-test-versions == '' && env.GODOT_TEST_VERSION == 'master'
186280 with :
187281 repo : godotengine/godot
188282 branch : master
@@ -205,8 +299,8 @@ jobs:
205299 - name : Upload artifact
206300 uses : actions/upload-artifact@v7
207301 with :
208- name : ${{ matrix.artifact-name }}
209- path : ${{ matrix.artifact-path }}
302+ name : godot-cpp- ${{ matrix.platform }}-${{ matrix.variant }}-cmake-release${{ matrix.extra- artifact-suffix || '' }}
303+ path : cmake-build/bin/libgodot-cpp. ${{ matrix.platform }}.template_release.${{ matrix.abi }}.${{ matrix.ext }}
210304 if-no-files-found : error
211305
212306 - name : Show build and sccache statistics
0 commit comments