Commit Graph

311 Commits

Author SHA1 Message Date
Rémi Verschelde
a890457693
CI: Make extension API compatibility check mandatory
This means that any PR which breaks the extension API should
handle it properly, that is:

- Add compatibility methods to ensure that existing function hashes work
- Document the changes in the relevant misc/extension_api_validation/ file
2023-08-03 15:56:34 +02:00
Rémi Verschelde
4646762c81
CI: Allow skipping our GHA workflows with DISABLE_GODOT_CI variable
Useful for custom forks of Godot which don't want to run our CI for any
reason.

This is configured in `settings/variables/actions` for the repository,
setting it to any value aside from an empty string will skip all jobs.
2023-08-02 17:48:47 +02:00
Yuri Sizov
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
Rémi Verschelde
611123f7fd
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.
2023-08-01 14:29:20 +02:00
Hugo Locurcio
c16db0935f
Fix doc_status.py trying to get removed version tag from XML
This also runs `doc_status.py` on CI to catch potential future regressions.
2023-07-13 16:25:54 +02:00
Ben Rog-Wilhelm
7ea171adca Add static check for overzealous .gitignores. 2023-07-01 08:41:36 -05:00
myaaaaaaaaa
8b78ad5fc4 Add a Linux ThreadSanitizer job to CI 2023-06-26 11:47:42 -04:00
Rémi Verschelde
8c564cd974
CI: Use SCU build for Linux w/ sanitizers build
It's the slowest build so a speedup from SCU is welcome.
The other purpose of this change is to actually catch global scope
conflicts which would break the SCU build.

SCU builds have drawbacks as they won't fully validate that the
includes are correct, but we should have enough other builds in the CI
build matrix to catch this type of bug.
2023-06-20 13:15:34 +02:00
Rémi Verschelde
c9c941e339
CI: Update static checks to black 23.3.0
And apply it to the codebase, removing empty lines at the start of blocks.
2023-06-19 23:33:02 +02:00
Rémi Verschelde
6fb391bc23
Fix various typos with codespell
And ignore some false positives introduced by recent versions of codespell.
2023-06-16 08:45:35 +02:00
Hugo Locurcio
d1cbab9822
Link to Code style guidelines in the pull request template
This is a common pain point for new contributors, as setting up
pre-commit hooks will save a lot of time spent on CI.
2023-06-15 07:22:20 +02:00
kleonc
c1248416ba Explain in GitHub issue template how to copy exact Godot version 2023-05-30 14:44:39 +02:00
MJacred
ca1ee316b5 Make system information for issue reports single-line
Additionally:
* for custom builds, add commit hash
* added a tooltip to help mitigate potential/understandable confusion whether the single-line output might be a bug
* prettify driver name
2023-05-29 22:20:40 +02:00
Yuri Sizov
c670c4334a
Merge pull request #65902 from MJacred/editor/copysysteminfo
Add an editor option to copy system info to clipboard
2023-05-27 20:11:54 +02:00
MJacred
9e5bf3d589 Copy system info to clipboard + Update bug_report.yml
plus minor static-related fixes
* linuxbsd: get_systemd_os_release_info_value() -> static breaks usage if used multiple times
* windows/linuxbsd: get_video_adapter_driver_info() writes info into static
* linuxbsd: get_distribution_name() + get_version() -> write bsd fallback into static variable
* windows/uwp/android: remove unnecessary use of static
2023-05-27 18:21:23 +02:00
RedworkDE
0cf491bcb5 Allow validating the extension api against a reference version and a list of known changes. 2023-05-19 18:43:04 +02:00
Rémi Verschelde
a28c9701ed
CI: Use GODOT_BASE_BRANCH for the godot-cpp checkout 2023-05-18 16:22:25 +02:00
Rémi Verschelde
78f9da7a9f
Merge pull request #76887 from RedworkDE/ci-fix-windows-unit-tests
CI: Fix running the unit tests on windows
2023-05-15 10:57:04 +02:00
Rémi Verschelde
c7a5ce656c
CI: Skip codespell check if CHANGED_FILES is empty
This can happen when only thirdparty files are changed, since we grep them out.
Re-add `bin` and `thirdparty` to the skip list for good measure.
2023-05-10 09:44:44 +02:00
RedworkDE
adbb323163 CI: Fix running the unit tests on windows 2023-05-10 00:02:27 +02:00
Rémi Verschelde
b3bb92ae5e
CI: Use gh-cli for changed files, and workaround codespell skip list bug
For PRs, this should give a more accurate list, as the previous method would
diff to the tip of the `master` branch, which could include new commits (and
thus changed files) not present in the PR branch.

codespell's `--skip` option doesn't work at all with folders when used
together with an explicit list of paths to work with, so let's not use it.
2023-05-08 15:36:17 +02:00
Rémi Verschelde
b226f7e587
CI: Make codespell checks blocking, but only check changed files 2023-05-08 11:50:55 +02:00
Jason Yundt
a6dc35e5cf Streamline and centralize bug reporting guides
Before this change, there was three different bug reporting guides:

- [“Filing an issue on GitHub”][1]
- [“Reporting bugs”][2]
- [The issue template][3]

This commit:

1. makes sure that [the issue template][3] contains all of the same
   information that [“Filing an issue on GitHub”][1] and
   [“Reporting bugs”][2] did and
2. makes [“Reporting bugs”][2] simply tell users to fill out the
   template.

The goal of this change is to make reporting bugs easier. This change
accomplishes that goal by presenting bug reporters with all of the
information they need to know on the bug reporting page itself.

This commit partially implements this proposal:
<https://github.com/godotengine/godot-proposals/discussions/4083>

[1]: https://docs.godotengine.org/en/stable/community/contributing/ways_to_contribute.html#filing-an-issue-on-github
[2]: ./CONTRIBUTING.md#reporting-bugs
[3]: ./.github/ISSUE_TEMPLATE/bug_report.yml
2023-05-03 14:53:49 -04:00
Yuri Sizov
3ae282b452 Create an "Editor-only" section in the online class reference
This helps to find such classes without digging
through the rest of the class reference.
Editor-only classes can still be found under
your normal "Node" and "Resource" types.

This also fixes a typo and a missed case from the recent platform docs PR.
2023-04-24 21:06:55 +02:00
Rémi Verschelde
39d24ee80b
CI: Fix checks fallback logic when changed files listing is missing
The file would be one byte (newline) so the check with '-s' failed.
2023-04-20 18:22:48 +02:00
Rémi Verschelde
9063e907a7
CI: Fixup failure to get changed files on merge
The checkout might be too shallow so the before commit isn't available.
The logic was already written to take this into account (it then generates
an empty 'changed.txt' which falls back to testing everything), but the
error code would still force terminate the job.

Hopefully we can find a way to make the logic work for merge events too in
the future, but for now this is a quick fix.
2023-04-20 17:51:53 +02:00
Rémi Verschelde
5e7b6cd75a
Merge pull request #76263 from akien-mga/ci-gotta-go-fast-with-style
CI: Speed up static checks by checking only changed files
2023-04-20 12:44:06 +02:00
Rémi Verschelde
068f893072
CI: Speed up static checks by checking only changed files
- file_format, header_guards and clang-format benefit from this short list.
- dotnet-format, Python and JS checks don't, but they're only relevant for
  PRs changing a specific set of files, so we skip them when those files
  aren't modified.

The logic to get changed files only works reliably for:
- Pull request events
- Non-force pushed push events

So when force pushing a branch in your fork, or creating a new branch,
it will still scan all files as fallback.

Upgraded CI runner to Ubuntu 22.04 so we get clang-format 14 out of the box,
so we don't need to install a custom version (saves ~15 s). We also cache
the APT dependencies to speed up the build and avoid flaky Ubuntu/Microsoft
repos.
2023-04-20 11:40:09 +02:00
bruvzg
a5128e71bb
[Export docs] Move docs to platform folders. 2023-04-20 11:02:12 +03:00
Rémi Verschelde
fba9416fe0
Merge pull request #75700 from akien-mga/ci-visible-whitespace
CI: Visibly print trailing whitespace when static checks fail
2023-04-05 20:21:19 +02:00
Rémi Verschelde
266280ffca
CI: Visibly print trailing whitespace when static checks fail
GitHub Actions seems to be hiding colored whitespace, and after lots of
attempts I couldn't find a way to work it around.

So instead I'm using a perl expression to replace trailing spaces with
`·` and tabs with `<TAB>` in the ANSI colored diff output. This ensure
that they're visible, and they are properly colored as expected too.
2023-04-05 18:31:46 +02:00
umarcor
2abadbb58b [ci/windows] remove obsolete 'tools' in the name 2023-04-05 14:10:52 +02:00
yedpodtrzitko
93b7bcb33d ci: wait for static check results before starting builds 2023-04-04 22:05:15 +07:00
Unai Martinez-Corral
dcb974700b [ci/web] update mymindstorm/setup-emsdk to v12 2023-03-26 02:12:53 +01:00
Rémi Verschelde
85bb561713
CI: Pin SCons to 4.4.0, the new 4.5.0 is broken 2023-03-06 08:42:51 +01:00
Rémi Verschelde
17da86eb7b
CI: Disable debug_symbols for Linux + all sanitizers build
We're running out of disk space so builds are failing...
2023-02-18 23:41:44 +01:00
Rémi Verschelde
57d0afb365
CI: Remove flaky packages.microsoft.com Ubuntu repository
We don't need it.
2023-02-11 17:05:05 +01:00
Rémi Verschelde
da124e9d04
CI: Remove custom Linux deps and SwiftShader
The default environment already includes everything we need to build
all our configurations.

Remove custom SwiftShader setup as lavapipe should now be good enough,
but we need to install the latest one.
2023-02-06 18:21:15 +01:00
Rémi Verschelde
435bf4e030
CI: Add official codespell action with PR annotations 2023-02-01 12:11:36 +01:00
bruvzg
8cb7bd5230
[CI] Remove packages that are no longer necessary. 2023-01-25 10:55:34 +02:00
bruvzg
daad4aed62
Cleanup and unify keyboard input.
- Unify keycode values (secondary label printed on a key), remove unused hardcoded Latin-1 codes.
- Unify IME behaviour, add inline composition string display on Windows and X11.
- Add key_label (localized label printed on a key) value to the key events, and allow mapping actions to the unshifted Unicode events.
- Add support for physical keyboard (Bluetooth or Sidecar) handling on iOS.
- Add support for media key handling on macOS.

Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-01-23 15:08:12 +02:00
Aaron Franke
06450bfb0f
Fix file formatting script dependencies and cleanup 2023-01-12 16:25:21 -06:00
Rémi Verschelde
02a1a335f7
CI: Use clang-format 15
No change compared to version 13 in our codebase.
2023-01-10 18:18:57 +01:00
Rémi Verschelde
de5aaf1d13
CI: Fix dumping GDExtension interface and API for godot-cpp
Follow-up to https://github.com/godotengine/godot-cpp/pull/960.

Fix exit code for --dump-extension-api and --dump-gdextension-interface.

Removed the planned API validation step as we still didn't implement
anything, and maintaining a stub isn't useful.
2022-12-14 16:42:14 +01:00
Rémi Verschelde
f1edd03d4c
Merge pull request #69718 from groud/finally_rename_gdnative_to_gdextension
Rename all gdnative occurences to gdextension
2022-12-12 11:43:59 +01:00
Gilles Roudière
be1c9d677d Rename all gdnative occurences to gdextension
Non-exhaustive list of case-sensitive renames:

GDExtension -> GDNative
GDNATIVE -> GDEXTENSION
gdextension -> gdnative
ExtensionExtension ->Extension (for where there was GDNativeExtension)
EXTENSION_EXTENSION ->EXTENSION (for where there was GDNATIVE_EXTENSION)
gdnlib -> gdextension
gdn_interface -> gde_interface
gdni -> gde_interface
2022-12-12 11:04:57 +01:00
Hugo Locurcio
063637ec77
Rename float=64 SCons option to precision=double
This avoids confusion with the old `bits=64` option and building
for 64-bit CPUs in general.
2022-12-10 16:43:45 +01:00
Hugo Locurcio
e032152494
Emphasize the importance of uploading a minimal reproduction project
The field is now required, but "N/A" can be manually entered if
the reproduction steps are trivial and don't require any project
files to be followed.
2022-11-17 21:46:41 +01:00
Rémi Verschelde
ee43b7da28
Merge pull request #68543 from DarkKilauea/msvc-problem-matcher 2022-11-11 22:57:01 +01:00
Josh Jones
ed2c1d1c51 Add MSVC problem matcher to CI 2022-11-11 13:23:59 -08:00
Raul Santos
d3641c9d0d
Add GCC problem matcher to CI 2022-11-11 19:41:36 +01:00
kobewi
246c39a2e7 Mention .godot folder in issue template 2022-11-11 15:36:19 +01:00
clayjohn
8345ef8579 Add rendering team as GLES3 CODEOWNER 2022-11-02 10:42:57 -07:00
bruvzg
0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
TechnoPorg
f124616a5f Various enhancements to Visual Studio solution generation.
This adds support for building solutions with dev_mode and/or float=64 enabled.
Additionally, it adds solution generation to the Windows CI to catch future regressions.
2022-10-04 19:10:02 -06:00
Rémi Verschelde
0056acf46f CI: Update target for godot-cpp after https://github.com/godotengine/godot-cpp/pull/867 2022-10-04 16:51:58 +02:00
Aaron Franke
267d267f3d
Fix CODEOWNERS and fix missing quote in "Building for platform" message 2022-10-01 01:57:50 -05:00
Jiri Suchan
c5bd2f9dce ci: add Python static analysis check via mypy 2022-09-30 19:03:17 +07:00
Rémi Verschelde
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
RedMser
5c5c3ab90e Further cleanup of VisualScript references 2022-09-19 21:37:26 +02:00
Rémi Verschelde
b353336037 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.
2022-09-09 14:02:16 +02:00
Gergely Kis
20bf72751c 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-05 13:18:27 +02:00
Fabio Alessandrelli
f958f00283 [Web] Require threads, rtti, allow optimize=speed.
Update export names (web[_dlink]_[release|debug].zip).

The Build with dynamic linking is broken due to high number of imports
in output wasm (likely emscripten regression issue 15487).
2022-08-30 20:01:19 +02:00
Fabio Alessandrelli
d20b32186f [Web] Rename JavaScript platform to Web.
Also rename export name from "HTML5" to "Web".
2022-08-29 11:52:00 +02:00
Raul Santos
ea6b8ecb6f
Add dotnet format to CI to check C# style 2022-08-27 10:11:35 +02:00
Rémi Verschelde
cfcdd576dd CI: Remove unnecessary extra cache step for Emscripten
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2022-08-25 14:35:43 +02:00
Rémi Verschelde
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
Aaron Franke
27b0f18275 Unify bits, arch, and android_arch into env["arch"]
Fully removes the `bits` option and adapts the code that relied on it.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-08-25 11:19:20 +02:00
Ignacio Roldán Etcheverry
20bd64db69 CI: Remove second build with mono_glue=yes
A second build is no longer needed. It was resulting in a null build
that still took more than 1 minute of CI time.

Also removed other usages of `mono_glue=no` and `mono_static=yes`,
as these options no longer exist.
2022-08-23 04:23:29 +02:00
Rémi Verschelde
0cea7e3f64
Merge pull request #62545 from yedpodtrzitko/yed/pytest-builders 2022-08-22 19:32:11 +02:00
Ignacio Roldán Etcheverry
18f805b3aa C#: Upgrade to .NET 6 (5.0 -> 6.0) 2022-08-22 03:36:51 +02:00
Ignacio Roldán Etcheverry
34db8d2c6c CI: Setup .NET Sdk to fix CI and build C# code as well 2022-08-22 03:36:51 +02:00
Jiri Suchan
388d35b74d ci: add basic test pipeline for shader builders 2022-08-19 20:32:13 +09:00
Jiri Suchan
b04593c22b ci: move slowest static job to the end of pipeline 2022-08-19 20:32:13 +09:00
Rafał Mikrut
49632bf993 Check also GLES3 in CI 2022-08-06 19:12:09 +02:00
antonWetzel
87ebfff46d create vector4, vector4i and projection for csharp 2022-07-31 19:42:34 +02:00
Rémi Verschelde
da14b19bbf CI: Link MoltenVK statically on macOS
Same as done for official builds.

Also make artifacts executable before zipping.
2022-07-29 14:32:57 +02:00
bruvzg
36ef8f29dc
Implement support for loading system fonts on Linux, macOS / iOS and Windows. 2022-07-26 08:38:05 +03:00
Rémi Verschelde
90019676b0 Code quality: Fix header guards consistency
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 11:17:40 +02:00
reduz
455c06ecd4 Implement Vector4, Vector4i, Projection
Implement built-in classes Vector4, Vector4i and Projection.

* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.

These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.

**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00
Rémi Verschelde
c8479c0d4d 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.

Removes 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.
2022-07-22 01:00:35 +02:00
Rémi Verschelde
a9e4eac7b9
Merge pull request #63225 from bruvzg/mac_rename 2022-07-21 10:25:26 +02:00
Rémi Verschelde
26f9e87235 CI: Use Gold (GCC) and LLD (Clang) as linker for Linux sanitizers builds
They're very memory hungry to a point where GNU ld can crash on CI.
Both Gold and LLD should be nicer to RAM and thus a safer option.
2022-07-21 08:53:11 +02:00
bruvzg
8823eae328
Rename OSX to macOS and iPhoneOS to iOS. 2022-07-21 09:37:52 +03:00
Riteo
ef9039ad36 Revert "CI: Disable Linux GCC ASAN temporarily"
This reverts commit 04e955841f.

It looks like we can just remove `-pipe` for the CI to complete.
2022-07-20 19:03:38 +02:00
Rémi Verschelde
04e955841f
CI: Disable Linux GCC ASAN temporarily
Another attempt at fixing CI which seems to get a linker crash since today (likely OOM).
2022-07-20 16:35:03 +02:00
Rémi Verschelde
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
bruvzg
b2462cfd8a
[macOS] Use statically linked MoltenVK by default, automatically detect MoltenVK SDK install (only in the default location). 2022-07-03 17:11:18 +03:00
Jan Haller
d38d76d039 Fix exit code of --help and --version, and test them in CI
Corrects prior regression which caused ERROR output and exit code of 1.
2022-07-02 01:17:35 +02:00
Rémi Verschelde
56deb5889e Rewrite PR template to make it slightly less verbose 2022-06-28 16:11:54 +02:00
Rafał Mikrut
24f45bd533 Add Godot 3.x -> Godot 4.x project converter 2022-06-15 10:11:17 +02:00
Hugo Locurcio
d45351f413
makerst: Print colored output for easier visual grepping
This is automatically enabled on all platforms including
Windows 10 and later, whenever a TTY environment is detected.

In non-TTY environments such as CI, this can be forced using the
`--color` command line argument.
2022-06-11 00:19:36 +02:00
Rémi Verschelde
f07021fbeb CI: Update Emscripten to 3.1.10
That's the version that we'll (tentatively) use for future 3.x and 4.0
builds.
2022-05-10 13:03:13 +02:00
bruvzg
6ab672d1ef Implement text-to-speech support on Android, iOS, HTML5, Linux, macOS and Windows.
Implement TextServer word break method.
2022-04-28 14:35:41 +03:00
bruvzg
38fcb9d112
Remove redundant godot-cpp build stage. 2022-04-07 19:54:09 +03:00
Rémi Verschelde
77843355a0 CI: Update black formatter and apply changes 2022-04-05 17:43:12 +02:00
bruvzg
ba0317be04
Add CI build with clang sanitizers, increase stack size to 30 MB for builds with sanitizers. 2022-04-01 13:15:35 +03:00
Rémi Verschelde
05ac2a4139 CI: Re-enabled godot-cpp test
Compatibility with current master was fixed in
https://github.com/godotengine/godot-cpp/pull/734
2022-03-30 15:38:46 +02:00
Pierre-Thomas Meisels
63f7f44ccb Make vararg method bind no return and return
Type emit_signal exposed method return type

set UndoRedo add_do_method and add_undo_method exposed return void

Set TreeItem::_call_recursive_bind returns void

Set _rpc_bind and _rpc_id_bind returns void in Node

Set _call_group and _call_group_flags method returns void in SceneTree

Set godot-cpp-test CI flag to false
2022-03-30 11:43:12 +02:00
Rémi Verschelde
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
Rémi Verschelde
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
Rémi Verschelde
3393b3c8d1 CI: Limit Windows cache size again, otherwise we run out of space
And force a full rebuild as the cache is now broken.
2022-03-28 16:09:15 +02:00
Rémi Verschelde
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
Raul Santos
4bbfd20aa9
Ignore PhysicsServer3DExtension class in C#
PhysicsServer3DExtension inherits from PhysicsServer3D which is a
singleton class, since singleton classes are generated as static in C#
it would generate invalid C# so for now we'll be
ignoring PhysicsServer3DExtension.
2022-03-18 17:28:48 +01:00
bruvzg
96f7a08fd6
Re-enable godot-cpp CI. 2022-03-17 08:18:01 +02:00
reduz
8b547331be Create GDExtension clases for PhysicsServer3D
* Allows creating a GDExtension based 3D Physics Server (for Bullet, PhysX, etc. support)
* Some changes on native struct binding for PhysicsServer

This allows a 3D Physics server created entirely from GDExtension. Once it works, the idea is to port the 2D one to it.
2022-03-15 18:39:31 +01:00
Hugo Locurcio
eae16f73a6
Make -q CLI argument toggle quiet stdout instead of quitting
`-q` is a common toggle in a command line applications for quiet mode
(see apt or dnf for examples). In contrast, `--quit` isn't needed
as often.
2022-03-13 23:55:01 +01:00
reduz
6f51eca1e3 Discern between virtual and abstract class bindings
* Previous "virtual" classes (which can't be instantiated) are not corretly named "abstract".
* Added a new "virtual" category for classes, they can't be instantiated from the editor, but can be inherited from script and extensions.
* Converted a large amount of classes from "abstract" to "virtual" where it makes sense.

Most classes that make sense have been converted. Missing:

* Physics servers
* VideoStream
* Script* classes.

which will go in a separate PR due to the complexity involved.
2022-03-10 12:28:11 +01:00
Rémi Verschelde
ce09a47db4 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:49:37 +01:00
Hugo Locurcio
b68dd2e189
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-02-15 00:03:31 +01:00
Hugo Locurcio
74fc4410f4
Remove support for ARMv7 (32-bit) on iOS
All iOS devices since the iPhone 5S support ARMv8 (64-bit).

The last iOS version supported on ARMv7 devices is 10.x, which is
too old to run Godot 4.0 projects since the minimum supported
iOS version is 11.0.
2022-02-08 22:11:29 +01:00
Rémi Verschelde
992794e44a
CI: Force invalidate macOS cache
I *hate* having to commit this kind of noise to our
commit history. Especially on a Friday at 10 pm.
2022-02-04 22:26:16 +01:00
Rémi Verschelde
56838ca009
CI: Rename macOS cache key to force a rebuild
The cache got corrupted and until https://github.com/actions/cache/issues/2
is prioritized we're forced to fix it up with such hacks...
2022-01-11 20:59:06 +01:00
Rémi Verschelde
aafac1e33a
CI: Update SwiftShader to 2021-10-02 build
No specific reason that I know of aside from it being available in our
prebuilt CI dependencies.
2022-01-06 15:17:34 +01:00
Rémi Verschelde
94232dcb48
CI: Update links to regression test project and prebuilt SwiftShader
qarmin's repository has been moved to the godotengine organization.
2022-01-06 12:10:15 +01:00
Aaron Franke
368c0bc0ac
Misc build system fixes 2021-12-10 12:14:27 -06:00
Aaron Franke
e9808e3d9a
Add a double-precision editor build to CI 2021-12-09 09:52:48 -06:00
Aaron Franke
ae713f8980
Add a minimal template build to CI
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-11-12 09:30:50 -06:00
qarmin
071829acc5 Enable mono editor build in CI 2021-11-09 11:02:04 +01:00
Rémi Verschelde
5116f32db4
CI: Update black to 21.10b0
No formatting changes on our code compared to 20.8b1.
2021-11-03 13:57:49 +01:00
Rémi Verschelde
f42ef8d5f9
CI: Update to clang-format 13 using LLVM repo 2021-10-28 17:11:00 +02:00
Rémi Verschelde
2ecab0491c
Merge pull request #54179 from aaronfranke/make-rst 2021-10-26 08:43:07 +02:00
Rémi Verschelde
55d05565d0
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).
2021-10-25 00:19:22 +02:00
Aaron Franke
8f05e26198
Rename "makerst.py" to "make_rst.py" 2021-10-24 01:58:59 -05:00
Bastiaan Olij
daff03576d Add CI step for compiling and testing godot-cpp 2021-10-21 20:30:19 +11:00
Rémi Verschelde
8fa67fba47
CI: Run doctool in headless mode 2021-10-20 17:48:50 +02:00
Marcel Admiraal
fe0b673bb3 Update Android CI to use JDK 11. 2021-10-09 15:27:11 +01:00
Rémi Verschelde
c4fa301b6b
CI: Build test binaries with debug symbols, then strip
This allows having good stacktraces when the tests crash.
2021-09-22 09:31:44 +02:00
Fabio Alessandrelli
3dbf008411 [CI] Refactor CI actions, use sub-actions, matrices. 2021-09-14 12:46:16 +02:00
Ellen Poe
f5d9c7b487 Replace stb_vorbis with libogg+libvorbis 2021-09-09 19:39:04 -07:00
Max Hilbrunner
5139a19877 Fix CI after concurrency 2021-08-25 15:04:05 +02:00
Max Hilbrunner
40bb1ded7e CI: Cancel previous builds if new commit is pushed 2021-08-25 14:54:48 +02:00
Gordon MacPherson
27da2e364e Fix github actions cache server being down failing builds 2021-08-18 21:58:54 +01:00
Fabio Alessandrelli
71fb2429a0 [CI] Upgrade Emscripten to 2.0.27.
Update Godot Javascript FS library to manually depend on ERRNO_CODES.
2021-08-18 10:30:50 +01:00
Rémi Verschelde
07c355c209
Issue template: Fix link to CONTRIBUTING.md
Fixes #51623.
2021-08-13 15:30:41 +02:00
Rémi Verschelde
c44ebb020d
HTML5: Fix warnings and re-enable werror=yes on CI
Add a missing call to disable warnings on a forked env for freetype's
`sfnt.c`.
2021-08-06 12:12:37 +02:00
Rafał Mikrut
e8877806ec Fix 'Attempted to remove invalid ID' errors 2021-07-31 15:30:31 +02:00
David Snopek
3963a11b2f Re-enable building WebXR in GitHub Actions 2021-07-17 15:37:35 -05:00
Fabio Alessandrelli
9a044d95fc Re-enable JavaScript CI (with no WebXR until fixed). 2021-07-15 15:34:13 +02:00
Yuri Sizov
0f78e36e1c Check if there are new docs missing on CI 2021-07-14 14:21:03 +03:00
Niklas Higi
0c83a23ab5
Add "Keep screen on" feature to DisplayServerX11 2021-06-20 21:57:33 +02:00
Rémi Verschelde
affb3ce1b7
Merge pull request #49364 from Calinou/add-form-github-issue-template
Add a form GitHub issue template for bug reports
2021-06-08 16:57:41 +02:00
Hugo Locurcio
50fd981cfc
Add a form GitHub issue template for bug reports
GitHub now supports forms as issue templates (currently in private beta).
Godot has been opted into this private beta, which makes this new feature
usable on the Godot repository.

Inspired by the ImageMagick form:

https://github.com/ImageMagick/ImageMagick/blob/main/.github/ISSUE_TEMPLATE/bug-report.yml
2021-06-08 16:25:34 +02:00
Marcel Admiraal
a81449be6d Don't install Android NDK in CI 2021-06-07 09:01:33 +01:00
Rémi Verschelde
4219a4cb6f
Fix typos with codespell
Using codespell 2.0.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
GIRD
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2021-05-20 12:38:56 +02:00
Rémi Verschelde
7eaf4d445d
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.
2021-05-19 15:03:56 +02:00
Bartłomiej T. Listwon
b6f16671ee pywin32 is no longer necessary for SCons install
https://github.com/SCons/scons/releases/tag/4.1.0
2021-05-19 08:49:45 +02:00
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