Commit Graph

43 Commits

Author SHA1 Message Date
57eac93820 CI: Add headless import test 2025-07-29 11:30:29 -05:00
c52c91f46c CI: Use modern --import syntax in GHA 2025-07-27 17:57:57 -05:00
d38bda7e7d CI: Format SCons input flags & build action 2025-05-15 09:30:18 -05:00
1377b91ead CI: Remove now unused godot-api-dump action
Its use was removed in b8480ffa21.
2025-04-24 23:20:55 +02:00
58d49cf087 CI: Validate scons-cache via action output 2025-03-30 10:30:50 -05:00
6c19c0bec5 CI: Ensure .scons-cache exists before parsing 2025-03-18 08:44:36 -05:00
0e2d1526b7 CI: Disable redirect_build_objects for GHA 2025-03-15 22:31:49 -05:00
de33bd2b7c CI: Trim cache before saving 2025-03-14 14:05:02 -05:00
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
0e3ffe55c2 CI: Ensure "valid" dummy key 2025-03-05 10:59:40 -06:00
0b9871590c CI: Ensure default branch cache persists 2025-03-05 10:32:19 -06:00
70bace7482 CI: Use correct godot-cpp branch 2025-03-03 12:08:55 -06:00
908e062e9b CI: Bump SCons to latest (4.8.1 → 4.9.0) 2025-03-03 11:56:42 -06:00
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
b8480ffa21 CI: Change godot-cpp from workflow to action 2025-01-20 13:36:14 -06:00
048f8442e3 Style: Minor pre-commit & yaml adjustments 2024-12-29 10:51:11 -06:00
357679ceb8 CI: Add explicit problem matchers 2024-11-27 16:47:34 -06:00
b31cc6960d CI: Bump SCons to latest (4.8.0 → 4.8.1) 2024-11-16 13:16:48 -06:00
0e4a4e3c4d SCons: Improve cache purging logic
• Implement caching via SCons arguments, rather than environment variables
2024-11-15 08:29:58 -06:00
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
41a81f5360 Style: Format yaml files 2024-09-13 08:06:53 -05:00
2d0165574d Add Metal support for macOS (arm64) and iOS 2024-08-20 12:11:06 +02:00
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
75a70d888a CI: Bump SCons version (4.7.0→4.8.0) 2024-07-22 09:03:34 -05:00
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
8039500f93 Revert "CI: Pin Python 3.12.3 to workaround GHA issue"
This reverts commit 4fd7b2fc0f.
2024-07-16 11:46:52 -05:00
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
06f4968a82 CI: Keep GHA artifacts for 60 days 2024-06-21 10:34:00 +02:00
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
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
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
5b5ec8f4dc Bump github workflows to SCons 4.7 2024-04-05 17:09:10 -04:00
ad8d3cf1c9 CI: Update actions to latest versions, use default runner .NET version 2024-02-22 23:02:35 +01:00
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
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
85bb561713 CI: Pin SCons to 4.4.0, the new 4.5.0 is broken 2023-03-06 08:42:51 +01:00
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
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
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
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
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
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
3dbf008411 [CI] Refactor CI actions, use sub-actions, matrices. 2021-09-14 12:46:16 +02:00