Skip to content

Commit aa15ed2

Browse files
committed
testing anchors
1 parent b18c1e6 commit aa15ed2

1 file changed

Lines changed: 152 additions & 58 deletions

File tree

.github/workflows/ci-cmake.yml

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

Comments
 (0)