Commit Graph

65 Commits

Author SHA1 Message Date
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
5e3f403ddb Merge pull request #65500 from migeran/fix-utf8-checks-3x 2022-09-08 13:30:33 +02:00
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
5271d69909 HTML5: Fix warning with Emscripten 3.1.20
And use that version for CI.
2022-09-05 15:37:33 +02:00
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
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
0bed7ea63f Merge pull request #61316 from bruvzg/tts_3x
[3.x] Backport text-to-speech support.
2022-08-05 23:45:51 +02:00
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
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
6489fe890e Backport text-to-speech support. 2022-07-01 11:04:50 +03:00
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
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
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
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
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
f0223ea8d3 CI: Update to clang-format 13 using LLVM repo
(cherry picked from commit f42ef8d5f9)
2021-10-28 17:30:52 +02:00
69e90daae3 Rename "makerst.py" to "make_rst.py"
(cherry picked from commits 8f05e26198
and cce7797a75)
2021-10-26 13:34:36 +02:00
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
f3b69e3cf4 Update Android CI to use JDK 11.
(cherry picked from commit fe0b673bb3)
2021-10-11 12:49:38 +02:00
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
8773b83773 [CI] Refactor CI actions, use sub-actions, matrices. 2021-09-14 19:19:13 +02:00
0a1cf70037 Fix github actions cache server being down failing builds
(cherry picked from commit 27da2e364e)
2021-08-18 23:08:21 +02:00
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
1b19545cd8 Don't install Android NDK in CI
(cherry picked from commit a81449be6d)
2021-06-07 12:15:20 +02:00
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
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
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
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
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
3bf1495390 Use unique test projects for each branch 2021-03-22 18:26:18 +01:00
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
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
9da596b5e6 CODEOWNERS: Add some more owned files and fix team names
(cherry picked from commit 146f016dcb)
2021-02-16 14:27:39 +01:00
45fb8b38fb CODEOWNERS: Update with newly added teams
(cherry picked from commit a25bfce694)
2021-02-16 14:27:39 +01:00
546d7f619b Use github actions cache not my own one.
(cherry picked from commit f2feefb367)
2021-02-16 14:27:38 +01:00
986b1a9b18 CI: Mono glue generation sometimes crashes on exit, ignore it 2021-02-12 11:14:19 +01:00
72d7fab45e CI: Build full Mono version on Linux, with glue
This makes the artifacts from the Linux Mono build usable.
2021-02-05 14:25:27 +01:00
188609e5ab CI: Update to clang-format 11 and apply ternary operator changes
(cherry picked from commit af878716f2)
2021-01-13 16:14:35 +01:00
df54f228ad CI: Pin Android NDK r21 as we don't support r22 yet
(cherry picked from commit 06613ed9a3)
2021-01-12 18:45:53 +01:00
2e87a652a4 Avoid opening editor multiple times in CI 2021-01-12 13:16:15 +01:00
0813008b8a [HTML5] Enforce JavaScript style with eslint.
Applies to javascript files inside the platform library folder, the
exposed Engine code, and any javascript files in modules.

Files ending with ".externs.js" will be ignored, you can create a
".eslintignore" file to specify extra files to be ignored.
2020-11-23 13:26:19 +01:00
07cf8983bf Use the Dummy audio driver in CI to prevent spurious error messages 2020-10-31 19:35:20 +01:00
35bfa0b292 Fix failing CI, due invalid importing of resources 2020-10-30 07:49:57 +01:00
79a6050bc1 Disable temporary exported build in CI 2020-10-28 12:13:22 +01:00
2d821cab2b CI: Refactor Android workflow, use pre-installed SDK and NDK
No need to waste time downloading all this when it's readily available :)
Also use the official action to setup Java 8.

Also build both architectures (armv7 and arm64v8) and generate the APK,
so we can upload it.

Remove now unused and outdated `misc/ci/android-tools-linux.sh`.

(cherry picked from commit 5f19e1d571)
2020-10-23 13:27:44 +02:00
3ebd5a2301 CI: Sync configuration with master branch
- Factors out common arguments in SCONSFLAGS
- Upload artifacts
- Disable debug symbols for release templates
2020-10-22 14:04:37 +02:00
759f3ca4cf CI: Add Linux headless/server builds
Adapted from linux_builds.yml.
2020-10-20 13:47:53 +02:00
f9cc75e8e0 CI: Fix Android and HTML5 workflows
The current version will soon stop working, according
to Github's friendly warnig:

The `set-env` command is deprecated and will be disabled soon.
Please upgrade to using Environment Files. For more information see:
https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
2020-10-08 14:26:08 +02:00
e5a43e8549 CI: Re-enable sanitizers build 2020-10-01 19:15:17 +02:00
3386fac02c iOS: fix deprecations
Change deprecated method calls to new ones.
Guard iOS version dependant functionality behind availability checks.
2020-10-01 18:09:55 +03:00