Commit Graph

94 Commits

Author SHA1 Message Date
Rémi Verschelde afb65ebc2c
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 20:44:49 +02:00
Rafał Mikrut 599d96163c Test Godot with Vulkan in CI 2021-04-15 16:17:28 +02:00
Fabio Alessandrelli 472482013e [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.
2021-02-26 11:33:59 +01:00
Rémi Verschelde caea551d41 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.
2021-02-22 11:51:55 +01:00
Gordon MacPherson f2feefb367 Use github actions cache not my own one. 2021-02-13 16:04:57 +00:00
Rémi Verschelde d6404fd7a0 CI: Build Linux editor without Mono, sanitizers with Mono
The Mono builds are with mono_glue=no so they're not usable,
and it would be convenient if the main tools=yes target=release_debug
artifacts could actually be used.
2021-02-05 12:07:40 +01:00
Rémi Verschelde af878716f2
CI: Update to clang-format 11 and apply ternary operator changes 2021-01-12 19:32:53 +01:00
Rémi Verschelde 06613ed9a3
CI: Pin Android NDK r21 as we don't support r22 yet 2021-01-12 18:42:59 +01:00
Rémi Verschelde 456acda57a
CI: Force building TextServer fallback
It's normally opt-in as the advanced one (CTL support) is the default,
but we need to build it to catch potential build issues.
2020-12-29 12:14:16 +01:00
Rémi Verschelde 3e3fded479
CI: Shrink Windows cache to 3GB, we run out of disk space 2020-12-04 20:06:15 +01:00
Fabio Alessandrelli c38984d286 [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 12:15:18 +01:00
Rémi Verschelde 5af5c86ebc
CI: Build with warnings=extra to catch 'em all
... on all platforms but MSVC, as it still has a number of unsolved warnings
in its `/Wall` level. Some of it might be valid, others might be overkill,
this needs further assessment and fixes. (We could also change the `extra`
level to `/W4` on MSVC if that's more meaningful.)
2020-11-09 15:01:43 +01:00
Rémi Verschelde 5f19e1d571
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`.
2020-10-22 17:21:59 +02:00
Rémi Verschelde e18a9a2224
CI: Set debug_symbols=no for template builds
This keeps their size small and allows to compare size changes on templates
in PRs, as the template size is what is most relevant to users.

For editor builds we keep debug symbols so they can be used to debug crashes.
2020-10-22 13:03:27 +02:00
Rémi Verschelde fc8ee3ca9b
CI: Don't upload linux-sanitizers artifacts
It's 1.5 GB, that's maybe a bit overkill.
2020-10-20 21:59:14 +02:00
Andrii Doroshenko (Xrayez) 2946535a6f CI: Refactor build workflows to use `SCONSFLAGS` 2020-10-16 14:41:30 +02:00
umarcor 935170c6d1 ci: do not use set-env 2020-10-16 05:11:28 +02:00
umarcor b8855ed732 CI: upload artifacts
Set retention-days of all artifacts to 14.
2020-10-15 20:32:16 +02:00
Rémi Verschelde 69e958b48d
CI: List contents of bin/ after build
This can be used to compare impacts on the generated files
and especially their size in PRs.
2020-10-15 19:50:49 +02:00
Rémi Verschelde 41c735fe50
Style: Fix black formatting after #42332
Somehow it did not run CI checks so we missed that one.

Also pin `black` version to latest upstream release.
2020-09-25 15:49:37 +02:00
Hugo Locurcio 82b30f36cb
GitHub Actions: Prepend emoji to platform names for easy visual grepping 2020-08-23 15:13:36 +02:00
Rafał Mikrut 2fec1b9363 Add Linux sanitizer build to github workspace 2020-08-16 08:32:44 +02:00
Gordon MacPherson 4705ee2ccf
Rename javascript_builds.yml to javascript_builds.disabled 2020-08-13 14:33:34 +01:00
Rémi Verschelde cf2e0116d9 CI: Properly exclude Azure repositories on Ubuntu
Nuke all the pre-defined repos, we just need stock Ubuntu.
2020-08-11 17:14:47 +02:00
Rémi Verschelde bfd5226a8d CI: Pin Emscripten version for reproducible builds
Emscripten is a fast-moving target which gets tons of improvements all the time,
but it's not rare that some regressions affect us and make our CI builds fail.
(See e.g. #33728, #35237, #39168, #40563, and #40914.)

Let's pin to a stable version to avoid having external factors impact our CI,
and update this version manually regularly in a PR to ensure that the new
version works well for us.
2020-07-31 14:19:40 +02:00
Andrii Doroshenko (Xrayez) ceb338d672 CI: Show `tests=yes` for builds which run tests 2020-07-30 14:00:45 +03:00
Rémi Verschelde f940e5e000 CI: Install master version of psf/black
Until https://github.com/psf/black/pull/1328 makes it in a stable release,
we have to use the latest from Git.

Apply new style fixes done by latest black.
2020-07-26 19:48:25 +02:00
Rémi Verschelde bf257adbf5 CI: Add iOS build on GitHub Actions 2020-07-25 21:55:49 +02:00
Andrii Doroshenko (Xrayez) f6465f46b4 SCons: Add `tests` option to enable or disable unit tests 2020-07-25 18:44:18 +03:00
RevoluPowered 579342810f t Add unit testing to Godot using DocTest and added to GitHub Actions CI
Implements exit codes into the engine so tests can return their statuses.
Ideally we don't do this, and we use FIXUP logic to 'begin' and 'end' the engine execution for tests specifically.

Since realistically we're initialising the engine here we don't want to do that, since String should not require an engine startup to test a single header.

This lowers the complexity of running the unit tests and even for
physics should be possible to implement such a fix.
2020-07-24 13:05:33 +01:00
Rémi Verschelde 2cf5ad9ea9 CI: Fix cache key and include base branch
The base branch is hardcoded as an env variable as I couldn't find a simple
way to just get either `3.2` or `master`. But it's easy to change when we
branch off from `master` to a new stable branch, which doesn't happen often.

(There's `{{github.base_ref}}` but it's probably more verbose like
`ref/heads/master`, and only valid for PRs.)
2020-07-24 08:28:43 +02:00
Gordon MacPherson afdce1e30c Improve the cache keys to prevent clashes for the wrong type of build 2020-07-24 00:15:23 +01:00
Gordon MacPherson 3c07d0ff32 Clamp scons cache to 4096 MB 2020-07-24 00:14:03 +01:00
Rémi Verschelde 0e294e6d25 CI: Add Mono support to Linux builds on GitHub Actions
Mono seems to be preinstalled in the build environment \o/
2020-07-24 00:29:11 +02:00
Rémi Verschelde cc530fdbe4 CI: Add GitHub Action build for JavaScript
Uses mymindstorm/setup-emsdk to install Emscripten and set up
caching for Emscripten's generated system libraries.
2020-07-24 00:06:34 +02:00
thebestnom 383ad22ee7 CI: Added Android GitHub Action 2020-07-23 19:36:53 +03:00
Aaron Franke e5df1362df
Split CI builds into workflows for each OS 2020-07-21 15:12:16 -04:00
Rémi Verschelde 431930bd09 CI: Drop AppVeyor and desktop Travis builds
These have been replaced by GitHub Actions.
The remaining Travis builds will also be ported eventually.
2020-07-20 10:35:53 +02:00
RevoluPowered d560f654ff fix CI builds on linux by using ubuntu default apt repositories 2020-07-20 09:51:12 +02:00
Gordon MacPherson 7bbae98094 added MacOS and Linux to GitHub Actions 2020-07-15 13:42:54 +01:00
Aaron Franke 61c9f11434
Globally install Python libraries in GitHub Actions
Otherwise it uses ~/.local/bin which GitHub doesn't include in PATH
2020-07-14 04:29:03 -04:00
Aaron Franke 9986439352
Commit other files changed by file_format.sh 2020-07-13 14:14:11 -04:00
Aaron Franke 79a2e4c1ab
Add static formatting checks for GitHub Actions 2020-07-13 14:06:13 -04:00
Gordon MacPherson 04592af5a4 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>
2020-07-12 19:44:49 +01:00