1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00
Commit Graph

56 Commits

Author SHA1 Message Date
Stuart Carnie
fe6763c723 Build: Update to Xcode 26.0.1 for Apple builds 2025-10-19 06:08:43 +11:00
Pāvels Nadtočajevs
3f757c41fc Update access-kit to 0.17.0 2025-07-29 08:37:01 +03:00
Pāvels Nadtočajevs
daf2c88928 [CI] Use Xcode 16 for macOS build. 2025-07-16 00:05:54 +03:00
Pāvels Nadtočajevs
6565c8e83f [AccessKit] Update API to 0.16.0. 2025-06-03 10:49:04 +03:00
Thaddeus Crews
d38bda7e7d CI: Format SCons input flags & build action 2025-05-15 09:30:18 -05:00
Juan Pablo Arce
257058a550 CI: Propagate matrix.sconsflags in macos_builds.yml 2025-05-01 20:45:26 -03:00
Pāvels Nadtočajevs
4310cb82b8 AccessKit integration for macOS, Linux, and Windows. 2025-04-08 20:25:47 +03:00
Rémi Verschelde
b84828bca7 CI: Build macOS binary without Vulkan if Vulkan SDK fails installing
It's not rare for this step to fail, either due to network errors,
or occasional changes in how the Vulkan SDK is distributed which require
editing our script.
2025-03-18 12:45:18 +01:00
Thaddeus Crews
de33bd2b7c CI: Trim cache before saving 2025-03-14 14:05:02 -05:00
Thaddeus Crews
0b9871590c CI: Ensure default branch cache persists 2025-03-05 10:32:19 -06:00
Thaddeus Crews
32563011e1 CI: Tighten timeout period for all jobs 2025-01-17 14:36:10 -06:00
Thaddeus Crews
4f7e04a959 CI: Only define single concurrency 2024-12-29 21:27:31 -06:00
A Thousand Ships
344d678bbe [Buildsystem] Tweak cache sizes for CI 2024-11-26 14:50:55 +01:00
Thaddeus Crews
41a81f5360 Style: Format yaml files 2024-09-13 08:06:53 -05:00
A Thousand Ships
df29cc696f [Core] Optionally delete Ref nullptr comparisons
Adds an optional (default false) compile option to enable comparing
`Ref` to `nullptr` to ensure correct use, as well as future expandsion
for more general dev checks (enabled with `dev_mode`)
2024-09-12 11:26:49 +02:00
A Thousand Ships
a2d16c0313 [CI] Run unit tests on desktop release templates 2024-07-18 15:17:33 +02:00
A Thousand Ships
32f8292679 [CI] Upload build cache before running tests
This improves turnaround time on large PRs where compilation is
successful but unit testing or similar fails, forcing recompilation of
unchanged code
2024-07-13 17:45:37 +02:00
Rémi Verschelde
a63c37dca1 SCons: Bump min version to 3.1.2, test it on CI with one Linux job
The min SCons version had to be bumped as SCons 3.0 before 3.0.3 seems
broken (see #92043), and there's little gain from supporting 3.0.3-3.0.5.

3.1.2 is also the first version to avoid ambiguities between Python 2
and Python 3 usage, so we finally use it as the minimum baseline.

Also test against Python 3.6 which is also our minimum supported version.
This should help prevent regressions whenever we modernize the build scripts.
2024-05-17 11:18:57 +02:00
A Thousand Ships
24ad73b13f [CI] [macOS] Build for both arm64 and x86_64
Creates a universal build, to catch discrepancies on different
architectures
2024-04-24 13:00:30 +02:00
A Thousand Ships
836845f5a2 [CI] [macOS] Fix CI with new GitHub runners
New `macos-latest` run on an arm64 image instead of x86_64 breaking the
editor workflow.
2024-04-23 20:01:32 +02:00
Aaron Franke
2b2dec1f60 CI: Enable submodules on the checkout action 2024-03-15 19:53:06 -07:00
Hugo Locurcio
dec26e15b3 Use colored output on CI for Doctest
GitHub Actions output is not considered a TTY, so colored output
must be forced.
2023-10-28 09:22:36 +02:00
Rémi Verschelde
de14f1d295 CI: Bump version for actions/checkout@v4 and actions/setup-dotnet@v3 2023-09-04 16:05:57 +02:00
Yuri Sizov
deb6025781 CI: Extract godot-cpp testing into its own job
This ensures that the godot-cpp job has plenty of resources
to run its build and avoid being affected by the main build.

Additionally:
- Extract test tasks into dedicated actions.
- Upload artifacts as early as possible.
- Ensure that we check master cache before random cache.
2023-08-01 20:41:45 +02:00
Rémi Verschelde
a28c9701ed CI: Use GODOT_BASE_BRANCH for the godot-cpp checkout 2023-05-18 16:22:25 +02:00
yedpodtrzitko
93b7bcb33d ci: wait for static check results before starting builds 2023-04-04 22:05:15 +07:00
Rémi Verschelde
39facb35a0 SCons: Unify tools/target build type configuration
Implements https://github.com/godotengine/godot-proposals/issues/3371.

New `target` presets
====================

The `tools` option is removed and `target` changes to use three new presets,
which match the builds users are familiar with. These targets control the
default optimization level and enable editor-specific and debugging code:

- `editor`: Replaces `tools=yes target=release_debug`.
  * Defines: `TOOLS_ENABLED`, `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_debug`: Replaces `tools=no target=release_debug`.
  * Defines: `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_release`: Replaces `tools=no target=release`.
  * Defines: `-O3`/`/O2`

New `dev_build` option
======================

The previous `target=debug` is now replaced by a separate `dev_build=yes`
option, which can be used in combination with either of the three targets,
and changes the following:

- `dev_build`: Defines `DEV_ENABLED`, disables optimization (`-O0`/`/0d`),
  enables generating debug symbols, does not define `NDEBUG` so `assert()`
  works in thirdparty libraries, adds a `.dev` suffix to the binary name.

Note: Unlike previously, `dev_build` defaults to off so that users who
compile Godot from source get an optimized and small build by default.
Engine contributors should now set `dev_build=yes` in their build scripts or
IDE configuration manually.

Changed binary names
====================

The name of generated binaries and object files are changed too, to follow
this format:

`godot.<platform>.<target>[.dev][.double].<arch>[.<extra_suffix>][.<ext>]`

For example:
- `godot.linuxbsd.editor.dev.arm64`
- `godot.windows.template_release.double.x86_64.mono.exe`

Be sure to update your links/scripts/IDE config accordingly.

More flexible `optimize` and `debug_symbols` options
====================================================

The optimization level and whether to generate debug symbols can be further
specified with the `optimize` and `debug_symbols` options. So the default
values listed above for the various `target` and `dev_build` combinations
are indicative and can be replaced when compiling, e.g.:

`scons p=linuxbsd target=template_debug dev_build=yes optimize=debug`
will make a "debug" export template with dev-only code enabled, `-Og`
optimization level for GCC/Clang, and debug symbols. Perfect for debugging
complex crashes at runtime in an exported project.
2022-09-26 16:31:46 +02:00
Rémi Verschelde
ef28da8006 CI: Bump various GitHub actions to latest versions
actions/cache@v3
actions/checkout@v3
actions/upload-artifact@v3
actions/setup-dotnet@v2
actions/setup-java@v3
actions/setup-python@v4
mymindstorm/setup-emsdk@v11

Also reset cache keys as we're going to cleanup all caches.
2022-08-25 13:44:22 +02:00
Aaron Franke
27b0f18275 Unify bits, arch, and android_arch into env["arch"]
Fully removes the `bits` option and adapts the code that relied on it.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-08-25 11:19:20 +02:00
Rémi Verschelde
da14b19bbf CI: Link MoltenVK statically on macOS
Same as done for official builds.

Also make artifacts executable before zipping.
2022-07-29 14:32:57 +02:00
bruvzg
8823eae328 Rename OSX to macOS and iPhoneOS to iOS. 2022-07-21 09:37:52 +03:00
bruvzg
b2462cfd8a [macOS] Use statically linked MoltenVK by default, automatically detect MoltenVK SDK install (only in the default location). 2022-07-03 17:11:18 +03:00
Jan Haller
d38d76d039 Fix exit code of --help and --version, and test them in CI
Corrects prior regression which caused ERROR output and exit code of 1.
2022-07-02 01:17:35 +02:00
Rémi Verschelde
992794e44a CI: Force invalidate macOS cache
I *hate* having to commit this kind of noise to our
commit history. Especially on a Friday at 10 pm.
2022-02-04 22:26:16 +01:00
Rémi Verschelde
56838ca009 CI: Rename macOS cache key to force a rebuild
The cache got corrupted and until https://github.com/actions/cache/issues/2
is prioritized we're forced to fix it up with such hacks...
2022-01-11 20:59:06 +01:00
Rémi Verschelde
c4fa301b6b CI: Build test binaries with debug symbols, then strip
This allows having good stacktraces when the tests crash.
2021-09-22 09:31:44 +02:00
Fabio Alessandrelli
3dbf008411 [CI] Refactor CI actions, use sub-actions, matrices. 2021-09-14 12:46:16 +02:00
Max Hilbrunner
5139a19877 Fix CI after concurrency 2021-08-25 15:04:05 +02:00
Max Hilbrunner
40bb1ded7e CI: Cancel previous builds if new commit is pushed 2021-08-25 14:54:48 +02:00
Gordon MacPherson
27da2e364e Fix github actions cache server being down failing builds 2021-08-18 21:58:54 +01:00
Rémi Verschelde
caea551d41 CI: Build without debug symbols to reduce cache size
We often hit "Too Many Requests" errors when uploading the cache with
`actions/cache` because there's a limit of 10 GB every 5 minutes, and we can
easily go over it when we amend or merge several PRs in a short timespan.

This will make the CI artifacts less useful for debugging crashes but there's
no real way around this.
2021-02-22 11:51:55 +01:00
Rémi Verschelde
456acda57a CI: Force building TextServer fallback
It's normally opt-in as the advanced one (CTL support) is the default,
but we need to build it to catch potential build issues.
2020-12-29 12:14:16 +01:00
Rémi Verschelde
5af5c86ebc CI: Build with warnings=extra to catch 'em all
... on all platforms but MSVC, as it still has a number of unsolved warnings
in its `/Wall` level. Some of it might be valid, others might be overkill,
this needs further assessment and fixes. (We could also change the `extra`
level to `/W4` on MSVC if that's more meaningful.)
2020-11-09 15:01:43 +01:00
Rémi Verschelde
e18a9a2224 CI: Set debug_symbols=no for template builds
This keeps their size small and allows to compare size changes on templates
in PRs, as the template size is what is most relevant to users.

For editor builds we keep debug symbols so they can be used to debug crashes.
2020-10-22 13:03:27 +02:00
Andrii Doroshenko (Xrayez)
2946535a6f CI: Refactor build workflows to use SCONSFLAGS 2020-10-16 14:41:30 +02:00
umarcor
b8855ed732 CI: upload artifacts
Set retention-days of all artifacts to 14.
2020-10-15 20:32:16 +02:00
Rémi Verschelde
69e958b48d CI: List contents of bin/ after build
This can be used to compare impacts on the generated files
and especially their size in PRs.
2020-10-15 19:50:49 +02:00
Hugo Locurcio
82b30f36cb GitHub Actions: Prepend emoji to platform names for easy visual grepping 2020-08-23 15:13:36 +02:00
Andrii Doroshenko (Xrayez)
ceb338d672 CI: Show tests=yes for builds which run tests 2020-07-30 14:00:45 +03:00
Rémi Verschelde
bf257adbf5 CI: Add iOS build on GitHub Actions 2020-07-25 21:55:49 +02:00