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

44 Commits

Author SHA1 Message Date
Thaddeus Crews
e1a7a18747 CI: Bump SCons version [4.9.0→4.10.0] 2025-10-03 13:06:56 -05:00
Thaddeus Crews
57eac93820 CI: Add headless import test 2025-07-29 11:30:29 -05:00
Thaddeus Crews
c52c91f46c CI: Use modern --import syntax in GHA 2025-07-27 17:57:57 -05:00
Thaddeus Crews
d38bda7e7d CI: Format SCons input flags & build action 2025-05-15 09:30:18 -05:00
Rémi Verschelde
1377b91ead CI: Remove now unused godot-api-dump action
Its use was removed in b8480ffa21.
2025-04-24 23:20:55 +02:00
Thaddeus Crews
58d49cf087 CI: Validate scons-cache via action output 2025-03-30 10:30:50 -05:00
Thaddeus Crews
6c19c0bec5 CI: Ensure .scons-cache exists before parsing 2025-03-18 08:44:36 -05:00
Thaddeus Crews
0e2d1526b7 CI: Disable redirect_build_objects for GHA 2025-03-15 22:31:49 -05:00
Thaddeus Crews
de33bd2b7c CI: Trim cache before saving 2025-03-14 14:05:02 -05:00
Thaddeus Crews
d7ecacb7a7 Merge pull request #103515 from Repiteo/ci/scons-bump
CI: Bump SCons to latest (4.8.1 → 4.9.0)
2025-03-05 12:07:32 -06:00
Thaddeus Crews
0e3ffe55c2 CI: Ensure "valid" dummy key 2025-03-05 10:59:40 -06:00
Thaddeus Crews
0b9871590c CI: Ensure default branch cache persists 2025-03-05 10:32:19 -06:00
David Snopek
70bace7482 CI: Use correct godot-cpp branch 2025-03-03 12:08:55 -06:00
Thaddeus Crews
908e062e9b CI: Bump SCons to latest (4.8.1 → 4.9.0) 2025-03-03 11:56:42 -06:00
Rémi Verschelde
1c35a31b9e Bump version to 4.5-dev
Mr. Godot told me to tell you he won't come this evening but surely tomorrow.
2025-03-03 17:27:40 +01:00
Thaddeus Crews
b8480ffa21 CI: Change godot-cpp from workflow to action 2025-01-20 13:36:14 -06:00
Thaddeus Crews
048f8442e3 Style: Minor pre-commit & yaml adjustments 2024-12-29 10:51:11 -06:00
Thaddeus Crews
357679ceb8 CI: Add explicit problem matchers 2024-11-27 16:47:34 -06:00
Thaddeus Crews
b31cc6960d CI: Bump SCons to latest (4.8.0 → 4.8.1) 2024-11-16 13:16:48 -06:00
Thaddeus Crews
0e4a4e3c4d SCons: Improve cache purging logic
• Implement caching via SCons arguments, rather than environment variables
2024-11-15 08:29:58 -06:00
Thaddeus Crews
66fe2c8b44 SCons: Bump minimum SCons & Python versions
SCons: 3.1.2 → 4.0
Python: 3.6 → 3.8
2024-11-12 11:30:24 -06:00
Thaddeus Crews
41a81f5360 Style: Format yaml files 2024-09-13 08:06:53 -05:00
Stuart Carnie
2d0165574d Add Metal support for macOS (arm64) and iOS 2024-08-20 12:11:06 +02:00
Rémi Verschelde
a713ce7b9e Merge pull request #94444 from Repiteo/ci/bump-scons
CI: Bump SCons version (4.7.0→4.8.0)
2024-07-22 17:24:07 +02:00
Thaddeus Crews
75a70d888a CI: Bump SCons version (4.7.0→4.8.0) 2024-07-22 09:03:34 -05:00
Rémi Verschelde
eb6c9142ca Merge pull request #94442 from Repiteo/ci/revert-python-version
Revert "CI: Pin Python 3.12.3 to workaround GHA issue"
2024-07-22 14:12:51 +02:00
Thaddeus Crews
8039500f93 Revert "CI: Pin Python 3.12.3 to workaround GHA issue"
This reverts commit 4fd7b2fc0f.
2024-07-16 11:46:52 -05: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
06f4968a82 CI: Keep GHA artifacts for 60 days 2024-06-21 10:34:00 +02:00
Rémi Verschelde
4fd7b2fc0f CI: Pin Python 3.12.3 to workaround GHA issue
macOS runners can't extract the 3.12.4 tarball properly it seems.
https://github.com/actions/setup-python/issues/886
2024-06-10 11:29:54 +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
Rémi Verschelde
7d03b1de0b Style: Trim trailing whitespace and ensure newline at EOF
Found by apply the file_format checks again via #91597.
2024-05-08 10:12:46 +02:00
Andrew Morrow
5b5ec8f4dc Bump github workflows to SCons 4.7 2024-04-05 17:09:10 -04:00
Rémi Verschelde
ad8d3cf1c9 CI: Update actions to latest versions, use default runner .NET version 2024-02-22 23:02:35 +01:00
Hugo Locurcio
0c1797383f Identify pull request builds from GitHub Actions with the PR number
This makes it easier to go back to the pull request the build was
made from.
2023-10-16 04:27:53 +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
85bb561713 CI: Pin SCons to 4.4.0, the new 4.5.0 is broken 2023-03-06 08:42:51 +01: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
Rémi Verschelde
ea21122575 SCons: Default num_jobs to max CPUs minus 1 if not specified
This doesn't change the behavior when `--jobs`/`-j` is specified as a
command-line argument or in `SCONSFLAGS`.

The SCons hack used to know if `num_jobs` was set by the user is derived
from the MongoDB setup.

We use `os.cpu_count()` for portability (available since Python 3.4).

With 4 CPUs or less, we use the max. With more than 4 we use max - 1 to
preserve some bandwidth for the user's other programs.
2022-07-17 12:38:41 +02:00
Rémi Verschelde
9522032adf CI: Reduce max cache to 7 GiB, remove Windows debug symbols
GitHub Actions runners only have 14 GiB available, so we need
to keep the cache constrained.
2022-03-30 10:16:03 +02:00
Rémi Verschelde
45ec0e31c3 Remove last editor code dependencies in template build
SConstruct change also makes it possible to outright delete the `editor`
folder in a `tools=no` build, which we use in CI to ensure no invalid
cross-dependencies are added.
2022-03-28 21:13:01 +02:00
Rémi Verschelde
cd2e7fbc57 CI: Update to actions/cache@v3, increase cache limit to 10 GiB
And force rebuild of Linux cache which got corrupted...
2022-03-23 08:10:43 +01:00
Fabio Alessandrelli
3dbf008411 [CI] Refactor CI actions, use sub-actions, matrices. 2021-09-14 12:46:16 +02:00