Commit graph

38 commits

Author SHA1 Message Date
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
Gordon MacPherson
546d7f619b
Use github actions cache not my own one.
(cherry picked from commit f2feefb367)
2021-02-16 14:27:38 +01:00
Rémi Verschelde
986b1a9b18
CI: Mono glue generation sometimes crashes on exit, ignore it 2021-02-12 11:14:19 +01:00
Rémi Verschelde
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
Rémi Verschelde
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
Rémi Verschelde
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
Rafał Mikrut
2e87a652a4 Avoid opening editor multiple times in CI 2021-01-12 13:16:15 +01:00
Fabio Alessandrelli
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
Hugo Locurcio
07cf8983bf
Use the Dummy audio driver in CI to prevent spurious error messages 2020-10-31 19:35:20 +01:00
Rafał Mikrut
35bfa0b292 Fix failing CI, due invalid importing of resources 2020-10-30 07:49:57 +01:00
Rafał Mikrut
79a6050bc1 Disable temporary exported build in CI 2020-10-28 12:13:22 +01:00
Rémi Verschelde
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
Rémi Verschelde
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
Rémi Verschelde
759f3ca4cf
CI: Add Linux headless/server builds
Adapted from linux_builds.yml.
2020-10-20 13:47:53 +02:00
Martin Capitanio
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
Rémi Verschelde
e5a43e8549
CI: Re-enable sanitizers build 2020-10-01 19:15:17 +02:00
Sergey Minakov
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
Rémi Verschelde
a0e419b617
CI: Disable sanitizer builds until we fix them
Added in #40994 but without recent rebase, so they don't pass currently.
2020-10-01 15:25:06 +02:00
Rémi Verschelde
0c3e0ab194
Merge pull request #40994 from qarmin/sanitization32
[3.2] Added Linux sanitizer with xvfb to github workspace
2020-10-01 13:56:09 +02:00
Rémi Verschelde
309b10eef7
CI: Pin black version to latest upstream release
(cherry picked from commit 41c735fe50)
2020-09-29 13:59:40 +02:00
Hugo Locurcio
30c4b1b67e
GitHub Actions: Prepend emoji to platform names for easy visual grepping
(cherry picked from commit 82b30f36cb)
2020-08-25 14:36:22 +02:00
Rafał Mikrut
abd7c1833e Added Linux sanitizer with xvfb to github workspace 2020-08-14 12:15:58 +02:00
Rémi Verschelde
1244986f98 CI: Pin Emscripten version to 1.39.20 temporarily
1.40.0 introduced a regression for us:
https://github.com/emscripten-core/emscripten/issues/11771

This is not necessary in the master branch, presumably because
it doesn't build any WebGL code (yet).
2020-07-31 14:09:33 +02:00
Rémi Verschelde
8fdb21f454 CI: Replace Travis iOS build by GitHub Actions
Last step of the migration from Travis/AppVeyor to GitHub Actions.

`werror=yes` should be enabled once outstanding warnings have been fixed.
2020-07-26 16:31:19 +02:00
Rémi Verschelde
4567eee79e CI: Backport GitHub Actions setup from master
Removes AppVeyor and all Travis jobs but the iOS one, which hasn't been ported
to GitHub Actions yet (should be done soon).

Backports new style scripts from `master` branch too to do the same checks.
2020-07-24 10:39:17 +02:00
Gordon MacPherson
13da2cc91f Use GitHub Actions instead of AppVeyor for Windows platform
This was based on quarmin's initial configuration, we had compile issues with AppVeyor being super slow and GitHub actions will take less time and also manage a full rebuild in 30 minutes.

This adds cache handling and will work with MSVC and scons 4.0, it will build for every PR submitted to the Godot Engine, and also for the branches specified. I have tested the caching and it seems to be working.

I left the 'publish artefacts' disabled until we can request more storage from Microsoft, 5 GB is far to low for us and we would eat this limit very fast. (it is tested and works fine)

Co-authored-by: Rafał Mikrut <mikrutrafal54@gmail.com>
(cherry picked from commit 04592af5a4)
2020-07-13 15:16:38 +02:00