summaryrefslogtreecommitdiff
path: root/.github/workflows/macos_builds.yml
AgeCommit message (Collapse)Author
2022-09-26SCons: Unify tools/target build type configurationRémi Verschelde
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-08-25CI: Bump various GitHub actions to latest versionsRémi Verschelde
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-25Unify bits, arch, and android_arch into env["arch"]Aaron Franke
Fully removes the `bits` option and adapts the code that relied on it. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-07-29CI: Link MoltenVK statically on macOSRémi Verschelde
Same as done for official builds. Also make artifacts executable before zipping.
2022-07-21Rename OSX to macOS and iPhoneOS to iOS.bruvzg
2022-07-03[macOS] Use statically linked MoltenVK by default, automatically detect ↵bruvzg
MoltenVK SDK install (only in the default location).
2022-07-02Fix exit code of --help and --version, and test them in CIJan Haller
Corrects prior regression which caused ERROR output and exit code of 1.
2022-02-04CI: Force invalidate macOS cacheRémi Verschelde
I *hate* having to commit this kind of noise to our commit history. Especially on a Friday at 10 pm.
2022-01-11CI: Rename macOS cache key to force a rebuildRémi Verschelde
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...
2021-09-22CI: Build test binaries with debug symbols, then stripRémi Verschelde
This allows having good stacktraces when the tests crash.
2021-09-14[CI] Refactor CI actions, use sub-actions, matrices.Fabio Alessandrelli
2021-08-25Fix CI after concurrencyMax Hilbrunner
2021-08-25CI: Cancel previous builds if new commit is pushedMax Hilbrunner
2021-08-18Fix github actions cache server being down failing buildsGordon MacPherson
2021-02-22CI: Build without debug symbols to reduce cache sizeRémi Verschelde
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.
2020-12-29CI: Force building TextServer fallbackRémi Verschelde
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-11-09CI: Build with warnings=extra to catch 'em allRémi Verschelde
... 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-10-22CI: Set debug_symbols=no for template buildsRémi Verschelde
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-16CI: Refactor build workflows to use `SCONSFLAGS`Andrii Doroshenko (Xrayez)
2020-10-15CI: upload artifactsumarcor
Set retention-days of all artifacts to 14.
2020-10-15CI: List contents of bin/ after buildRémi Verschelde
This can be used to compare impacts on the generated files and especially their size in PRs.
2020-08-23GitHub Actions: Prepend emoji to platform names for easy visual greppingHugo Locurcio
2020-07-30CI: Show `tests=yes` for builds which run testsAndrii Doroshenko (Xrayez)
2020-07-25CI: Add iOS build on GitHub ActionsRémi Verschelde
2020-07-25SCons: Add `tests` option to enable or disable unit testsAndrii Doroshenko (Xrayez)
2020-07-24t Add unit testing to Godot using DocTest and added to GitHub Actions CIRevoluPowered
Implements exit codes into the engine so tests can return their statuses. Ideally we don't do this, and we use FIXUP logic to 'begin' and 'end' the engine execution for tests specifically. Since realistically we're initialising the engine here we don't want to do that, since String should not require an engine startup to test a single header. This lowers the complexity of running the unit tests and even for physics should be possible to implement such a fix.
2020-07-24CI: Fix cache key and include base branchRémi Verschelde
The base branch is hardcoded as an env variable as I couldn't find a simple way to just get either `3.2` or `master`. But it's easy to change when we branch off from `master` to a new stable branch, which doesn't happen often. (There's `{{github.base_ref}}` but it's probably more verbose like `ref/heads/master`, and only valid for PRs.)
2020-07-24Improve the cache keys to prevent clashes for the wrong type of buildGordon MacPherson
2020-07-24Clamp scons cache to 4096 MBGordon MacPherson
2020-07-21Split CI builds into workflows for each OSAaron Franke