Commit Graph

83 Commits

Author SHA1 Message Date
Rémi Verschelde de25845e8d
CI: Update base branch to 3.6 2024-09-11 13:09:47 +02:00
A Thousand Ships 078210bce1
[CI] Upload build cache before running tests 2024-07-13 17:50:46 +02:00
Andrew Morrow 7674e494ae
Bump github workflows to SCons 4.7
(cherry picked from commit 5b5ec8f4dc)
2024-04-25 16:24:35 +02:00
Rémi Verschelde 52fa38b0f7
CI: Update actions to latest versions
(cherry picked from commit ad8d3cf1c9)
2024-04-25 16:24:14 +02:00
totlmstr cae1844c5c
[3.x] Add option `modules_enabled_by_default` and minimal CI build
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: aaronfranke <arnfranke@yahoo.com>
2024-04-18 15:54:54 -07:00
Rémi Verschelde 4206975e3a
SCons: Fix Web build when compiler version isn't properly detected
Quick fix for #82585.

A better fix requires refactoring the way we detect the compiler version
to make it more reliable, and get a consistent output. But I prefer to
keep changes minimal for 3.x branches at this point.

Also set CI version to 3.1.39, which is what we use for official 3.6 builds
since 3.6-beta4.
2024-01-30 14:54:49 +01:00
Rémi Verschelde f255fb89db
CI: Update mymindstorm/setup-emsdk to v14, should fix cache folder conflicts
https://github.com/mymindstorm/setup-emsdk/releases/tag/v14

Co-authored-by: Yuri Sizov <yuris@humnom.net>
(cherry picked from commit 35ef0b32b3)
2024-01-30 14:25:16 +01:00
Fredia Huya-Kouadio eba77be573 Update Android dependencies for the project
- Update Java version from 11 to 17
- Update Android gradle plugin version from 7.2.1 to 8.2.0
- Update gradle version from 7.4.2 to 8.2
- Update target SDK from 33 to 34
- Update build tools version from 33.0.2 to 34.0.0
- Update kotlin version from 1.7.0 to 1.9.20
- Update Android fragment version from 1.3.6 to 1.6.2
- Update AndroidX window version from 1.0.0 to 1.2.0
- Update Nexus plugin version from 1.1.0 to 1.3.0
2024-01-25 13:58:08 -08:00
Rémi Verschelde c88a8f96b4
Web: Workaround Emscripten 3.1.42+ LTO regression
Fixes #80010.

(cherry picked from commit b064008c07)
2023-10-30 14:49:13 +01:00
Rémi Verschelde cb0ee90fde
CI: Bump version for `actions/checkout@v4`
(cherry picked from commit de14f1d295)
2023-10-30 14:49:13 +01:00
Ben Rog-Wilhelm b19469a08e
Add static check for overzealous .gitignores.
(cherry picked from commit 7ea171adca)
2023-08-29 13:54:56 +02:00
Rémi Verschelde b08e61640f
CI: Free disk space on Linux runners
Removing the Android toolchain saves 14 GiB, which gives us more room
for growth and to avoid running into out-of-space errors in the Linux
sanitizers + debug symbols builds.

Related to #79919, though the caches were just one part of the problem,
the real issue is that our Linux sanitizers builds take 12 GiB, and
adding godot-cpp on top with 2 GiB leaves only a few GiB left for the
cache itself.

(cherry picked from commit 611123f7fd)
2023-08-29 12:42:10 +02:00
yedpodtrzitko 886cc22e9b
ci: wait for static check results before starting builds
(cherry picked from commit 93b7bcb33d)
2023-08-29 12:42:08 +02:00
Unai Martinez-Corral c4becb0ca4
[ci/web] update mymindstorm/setup-emsdk to v12
(cherry picked from commit dcb974700b)
2023-05-11 21:06:07 +02:00
Rémi Verschelde 62b6529fed
CI: Pin SCons to 4.4.0, the new 4.5.0 is broken
(cherry picked from commit 85bb561713)
2023-03-06 10:10:45 +01:00
Rémi Verschelde 2d5f9c49a4
CI: Use clang-format 15
No change compared to version 13 in our codebase.

(cherry picked from commit 02a1a335f7)
2023-01-11 14:34:52 +01:00
Josh Jones 7b20f05db6 Add MSVC problem matcher to CI
(cherry picked from commit ed2c1d1c51)
2022-12-12 13:53:03 +08:00
Raul Santos 72b6c4062a Add GCC problem matcher to CI
(cherry picked from commit d3641c9d0d)
2022-12-12 13:52:38 +08:00
Rémi Verschelde d52a25fdec CI: Downgrade Emscripten to 3.1.18
Emscripten 3.1.19 and 3.1.20 have a showstopping regression that breaks
calling our main function for the editor build.

(cherry picked from commit b353336037)
2022-09-09 14:25:26 +02:00
Rémi Verschelde 5e3f403ddb
Merge pull request #65500 from migeran/fix-utf8-checks-3x 2022-09-08 13:30:33 +02:00
Gergely Kis 13d9a8c88f Fix UTF-8 validation in static checks
Use isutf8 instead of recode to detect invalid UTF-8 sequences.

Also add the necessary dependencies to run the static checks locally
using act (https://github.com/nektos/act) with the Medium size image.
2022-09-08 00:07:21 +02:00
Rémi Verschelde 5271d69909 HTML5: Fix warning with Emscripten 3.1.20
And use that version for CI.
2022-09-05 15:37:33 +02:00
Rémi Verschelde 03940b77a2 CI: Remove unnecessary extra cache step for Emscripten
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
(cherry picked from commit cfcdd576dd)
2022-08-25 15:36:19 +02:00
Rémi Verschelde abaa76fcf9 CI: Sync configuration with master branch
Updates various 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
2022-08-25 14:11:54 +02:00
Rémi Verschelde 0bed7ea63f
Merge pull request #61316 from bruvzg/tts_3x
[3.x] Backport text-to-speech support.
2022-08-05 23:45:51 +02:00
Rémi Verschelde 5bb3063eec SCons: Refactor Linux linker options with `linker=<bfd|gold|lld|mold>`
The new option is `linker` and lets the user specify the argument to
the`-fuse_ld=` linker flag directly. The supported options are:

- `default`: No change, typically uses GNU ld (bfd) unless the user or
  distro picked a different default `/usr/bin/ld`.
- `bfd`: GNU ld from binutils
- `gold`: GNU gold from binutils
- `lld`: lld from LLVM
- `mold`: mold, an extremely fast modern linker, not (yet) intended for
  use in production but great for development speed. Provided by distro
  `mold` package or needs to be compiled from source and installed to
  `/usr` otherwise.

Deprecates the `use_lld=yes` option, and make lld actually usable with
GCC too.

Not all the above are compatible or recommend for LTO, we recommend
using GNU ld with GCC LTO, or lld with LLVM ThinLTO.

(cherry picked from commit 534f85add1daec0669a1f18edd2cc456f9a296ef)
2022-07-22 01:03:31 +02:00
Rémi Verschelde e1e22be3bc 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.

(cherry picked from commit ea21122575)
2022-07-18 10:25:42 +02:00
bruvzg 6489fe890e
Backport text-to-speech support. 2022-07-01 11:04:50 +03:00
Rémi Verschelde b66f94d2ff CI: Update Emscripten to 3.1.10
That's the version that we'll (tentatively) use for future 3.x and 4.0
builds.

(cherry picked from commit f07021fbeb)
2022-05-16 16:38:50 +02:00
Hugo Locurcio b087538119
Add an XML schema for documentation
This makes it easier to spot syntax errors when editing the
class reference. The schema is referenced locally so validation
can still work offline.

Each class XML's schema conformance is also checked on GitHub Actions.
2022-03-16 23:01:02 +01:00
Rémi Verschelde 6475c676a8 CI: Use mono_static=yes for Mono builds
This removes the dependency on shared libmonosgen installed locally
and makes the artifacts usable as standalone for testing without
needing a full Mono install.
2022-02-22 13:10:17 +01:00
Rémi Verschelde cf76e1e001
CI: Update links to regression test project and prebuilt SwiftShader
qarmin's repository has been moved to the godotengine organization.

(cherry picked from commit 94232dcb48)
2022-01-06 12:12:22 +01:00
Rémi Verschelde d04368a41b
CI: Update black to 21.10b0
No formatting changes on our code compared to 20.8b1.

(cherry picked from commit 5116f32db4)
2021-11-03 14:53:05 +01:00
Rémi Verschelde f0223ea8d3
CI: Update to clang-format 13 using LLVM repo
(cherry picked from commit f42ef8d5f9)
2021-10-28 17:30:52 +02:00
Aaron Franke 69e90daae3
Rename "makerst.py" to "make_rst.py"
(cherry picked from commits 8f05e26198
and cce7797a75)
2021-10-26 13:34:36 +02:00
Rémi Verschelde d09b33dab2
clang-format: Enable `--Wno-error=unknown` for compat with older versions
This prevents errors when encountering options which have been defined in newer
versions of clang-format, and are invalid in the YAML for the old version.

Bump minimum supported clang-format version to 12 (where `--Wno-error=unknown`
was added).

Use clang-format 12 on CI (13 is not available yet on the Ubuntu 20.04 images).

(cherry picked from commit 55d05565d0)
2021-10-25 11:16:13 +02:00
Marcel Admiraal f3b69e3cf4
Update Android CI to use JDK 11.
(cherry picked from commit fe0b673bb3)
2021-10-11 12:49:38 +02:00
Rémi Verschelde e2b2319ee5
CI: Build test binaries with debug symbols, then strip
This allows having good stacktraces when the tests crash.

(cherry picked from commit c4fa301b6b)
2021-09-27 18:03:39 +02:00
Fabio Alessandrelli 8773b83773 [CI] Refactor CI actions, use sub-actions, matrices. 2021-09-14 19:19:13 +02:00
Gordon MacPherson 0a1cf70037
Fix github actions cache server being down failing builds
(cherry picked from commit 27da2e364e)
2021-08-18 23:08:21 +02:00
Rémi Verschelde 1de8f31448
CI: Upgrade Emscripten to 2.0.25
That's the version used by current containers for Godot 3.4.

Fixes a couple stray warnings that new Emscripten/LLVM catches.
2021-08-18 11:13:34 +02:00
Marcel Admiraal 1b19545cd8
Don't install Android NDK in CI
(cherry picked from commit a81449be6d)
2021-06-07 12:15:20 +02:00
Rémi Verschelde a92dd585f7
CI: Install Android NDK 21.4.7075529
This is the version mandated by Godot's gradle setup anyway so it would get
installed when running gradlew. Now we pre-install the correct version.

(cherry picked from commit 7eaf4d445d)
2021-05-19 15:22:56 +02:00
Bartłomiej T. Listwon ccd8c5ec66
pywin32 is no longer necessary for SCons install
https://github.com/SCons/scons/releases/tag/4.1.0
(cherry picked from commit b6f16671ee)
2021-05-19 15:22:24 +02:00
Rémi Verschelde b388412270
CI: Add `--doctool` check to find missing classref updates
This will enforce that PRs properly sync the class reference templates to match
their changes to the public API, and help notice binding bugs in the process
(e.g. missing enum bindings, unexpected API changes or missing argument names).

This should also serve as a reminder to contributors that their changes impact
the scripting API and might warrant actually filling the descriptions for the
new methods/properties/etc.
2021-05-03 22:45:14 +02:00
Rémi Verschelde 9571ae3a33
CI: Upgrade Emscripten to 2.0.15 (same as official standard builds)
We still use Emscripten 1.39.9 for official Mono builds so ideally we want to test
against an old Emscripten version to ensure we don't break compatibility.

But then google-closure-compiler-linux broke compatibility for us and is not properly
pinned, so we need to use a more recent version for now to fix CI.

Cf. https://github.com/emscripten-core/emsdk/issues/802
2021-04-28 10:59:57 +02:00
Rémi Verschelde 173e9b765a
CI: Bump BASE_BRANCH from 3.2 to 3.x
This was forgotten when renaming 3.2.4 to 3.3.
Once 3.3-stable is out and we branch off to 3.3, the BASE_BRANCH should
be bumped to 3.3 in that branch.
2021-04-19 14:37:47 +02:00
Rafał Mikrut 3bf1495390 Use unique test projects for each branch 2021-03-22 18:26:18 +01:00
Fabio Alessandrelli 43e429fa93 [HTML5] Add jsdoc2rst tool.
A template for `jsdoc` that generat the HTML5 public classref.

The script can be run via `npm run docs` to print to stdout.

You can dry run via `npm run docs -- --d dry-run` or write to file via
`npm run docs -- -d /path/to/file.rst`

Also update Makefile in `doc/` and add dry run test to CI.

(cherry picked from commit 472482013e)
2021-02-26 15:35:45 +01:00
Rémi Verschelde f50569a592 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.

(cherry picked from commit caea551d41)
2021-02-22 14:16:42 +01:00