@@ -36,98 +36,189 @@ 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
6350
64- - name : 🏁 Windows (x86_64, MSVC)
51+ - &windows-test
6552 os : windows-2022
6653 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
54+ variant : msvc2022-x86_64
55+ abi : x86_64
56+ ext : lib
7157 run-tests : true
7258 godot-test-arch : " win64.exe"
7359 godot-master-workflow : windows_builds.yml
7460 godot-master-artifact : windows-editor
7561
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)
62+ - &macos-test
9163 os : macos-latest
9264 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
65+ variant : universal
66+ abi : universal
67+ ext : a
9668 run-tests : true
9769 godot-test-arch : " macos.universal"
9870 godot-master-workflow : macos_builds.yml
9971 godot-master-artifact : macos-editor
10072
101- # Non-test platforms
102- - name : 🤖 Android (arm64, Ninja)
73+ - &android-base
10374 os : ubuntu-22.04
10475 platform : android
76+ variant : arm64
77+ abi : arm64
78+ ext : a
79+ run-tests : false
80+
81+ - &ios-base
82+ os : macos-latest
83+ platform : ios
84+ variant : arm64
85+ abi : arm64
86+ ext : a
87+ run-tests : false
88+
89+ - &web-base
90+ os : ubuntu-22.04
91+ platform : web
92+ variant : wasm32
93+ abi : wasm32
94+ ext : a
95+ run-tests : false
96+
97+ # ==================== TEST PLATFORMS ====================
98+ - << : *linux-test
99+ name : 🐧 Linux (GCC, Makefiles)
100+ config-flags : -DCMAKE_BUILD_TYPE=Release
101+
102+ - << : *linux-test
103+ name : 🐧 Linux (GCC, Makefiles) for Godot 4.6
104+ config-flags :
105+ -DCMAKE_BUILD_TYPE=Release
106+ -DGODOTCPP_API_VERSION=4.6
107+ godot-test-versions : " 4.6-stable"
108+ extra-artifact-suffix : -godot46
109+
110+ - << : *linux-test
111+ name : 🐧 Linux (GCC, Makefiles) for Godot 4.5
112+ config-flags :
113+ -DCMAKE_BUILD_TYPE=Release
114+ -DGODOTCPP_API_VERSION=4.5
115+ godot-test-versions : " 4.5-stable 4.6-stable"
116+ extra-artifact-suffix : -godot45
117+
118+ - << : *linux-test
119+ name : 🐧 Linux (GCC, Makefiles) for Godot 4.4
120+ config-flags :
121+ -DCMAKE_BUILD_TYPE=Release
122+ -DGODOTCPP_API_VERSION=4.4
123+ godot-test-versions : " 4.4-stable 4.5-stable 4.6-stable"
124+ extra-artifact-suffix : -godot44
125+
126+ - << : *linux-test
127+ name : 🐧 Linux (GCC, Makefiles) for Godot 4.3
128+ config-flags :
129+ -DCMAKE_BUILD_TYPE=Release
130+ -DGODOTCPP_API_VERSION=4.3
131+ godot-test-versions : " 4.3-stable 4.4-stable 4.5-stable 4.6-stable"
132+ extra-artifact-suffix : -godot43
133+
134+ - << : *windows-test
135+ name : 🏁 Windows (x86_64, MSVC)
136+ compiler : msvc
137+ build-flags : --config Release
138+
139+ - << : *windows-test
140+ name : 🏁 Windows (x86_64, MinGW, Ninja)
141+ compiler : mingw
142+ config-flags :
143+ -GNinja -DCMAKE_BUILD_TYPE=Release
144+ -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=c++
145+ variant : mingw-x86_64
146+ ext : a
147+
148+ - << : *windows-test
149+ name : 🏁 Windows (x86_64, MinGW, Ninja) for Godot 4.6
150+ compiler : mingw
151+ config-flags :
152+ -GNinja -DCMAKE_BUILD_TYPE=Release
153+ -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=c++
154+ -DGODOTCPP_API_VERSION=4.6
155+ variant : mingw-x86_64
156+ ext : a
157+ godot-test-versions : " 4.6-stable"
158+ extra-artifact-suffix : -godot46
159+
160+ - << : *windows-test
161+ name : 🏁 Windows (x86_64, MinGW, Ninja) for Godot 4.5
162+ compiler : mingw
163+ config-flags :
164+ -GNinja -DCMAKE_BUILD_TYPE=Release
165+ -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=c++
166+ -DGODOTCPP_API_VERSION=4.5
167+ variant : mingw-x86_64
168+ ext : a
169+ godot-test-versions : " 4.5-stable 4.6-stable"
170+ extra-artifact-suffix : -godot45
171+
172+
173+ - << : *windows-test
174+ name : 🏁 Windows (x86_64, MinGW, Ninja) for Godot 4.4
175+ compiler : mingw
176+ config-flags :
177+ -GNinja -DCMAKE_BUILD_TYPE=Release
178+ -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=c++
179+ -DGODOTCPP_API_VERSION=4.4
180+ variant : mingw-x86_64
181+ ext : a
182+ godot-test-versions : " 4.4-stable 4.5-stable 4.6-stable"
183+ extra-artifact-suffix : -godot44
184+
185+ - << : *windows-test
186+ name : 🏁 Windows (x86_64, MinGW, Ninja) for Godot 4.3
187+ compiler : mingw
188+ config-flags :
189+ -GNinja -DCMAKE_BUILD_TYPE=Release
190+ -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=c++
191+ -DGODOTCPP_API_VERSION=4.3
192+ variant : mingw-x86_64
193+ ext : a
194+ godot-test-versions : " 4.3-stable 4.4-stable 4.5-stable 4.6-stable"
195+ extra-artifact-suffix : -godot43
196+
197+ - << : *macos-test
198+ name : 🍎 macOS (universal, Makefiles)
199+ config-flags : -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64"
200+
201+ # ==================== NON-TEST PLATFORMS ====================
202+ - << : *android-base
203+ name : 🤖 Android (arm64, Ninja)
105204 config-flags :
106205 -G Ninja -DCMAKE_BUILD_TYPE=Release
107206 --toolchain ${ANDROID_HOME}/ndk/28.1.13356709/build/cmake/android.toolchain.cmake
108207 -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
111208
112- - name : 🍏 iOS (arm64, XCode)
113- os : macos-latest
114- platform : ios
209+ - << : *ios-base
210+ name : 🍏 iOS (arm64, XCode)
115211 config-flags :
116212 -G Xcode
117213 --toolchain cmake/ios.toolchain.cmake
118214 -DPLATFORM=OS64
119215 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
122216
123- - name : 🌐 Web (wasm32, Ninja)
124- os : ubuntu-22.04
125- platform : web
217+ - << : *web-base
218+ name : 🌐 Web (wasm32, Ninja)
126219 config-flags :
127220 -G Ninja -DCMAKE_BUILD_TYPE=Release
128221 --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
131222
132223 steps :
133224 - name : Checkout
@@ -205,8 +296,8 @@ jobs:
205296 - name : Upload artifact
206297 uses : actions/upload-artifact@v7
207298 with :
208- name : ${{ matrix.artifact-name }}
209- path : ${{ matrix.artifact-path }}
299+ name : godot-cpp- ${{ matrix.platform }}-${{ matrix.variant }}-cmake-release${{ matrix.extra- artifact-suffix || '' }}
300+ path : cmake-build/bin/libgodot-cpp. ${{ matrix.platform }}.template_release.${{ matrix.abi }}.${{ matrix.ext }}
210301 if-no-files-found : error
211302
212303 - name : Show build and sccache statistics
0 commit comments