Skip to content

Commit 748644e

Browse files
committed
testing anchors
1 parent b18c1e6 commit 748644e

1 file changed

Lines changed: 148 additions & 57 deletions

File tree

.github/workflows/ci-cmake.yml

Lines changed: 148 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)