1
0
Fork 0
Commit Graph

392 Commits

Author SHA1 Message Date
David Snopek 70bace7482 CI: Use correct godot-cpp branch 2025-03-03 12:08:55 -06:00
Thaddeus Crews 908e062e9b
CI: Bump SCons to latest (4.8.1 → 4.9.0) 2025-03-03 11:56:42 -06:00
Rémi Verschelde 1c35a31b9e
Bump version to 4.5-dev
Mr. Godot told me to tell you he won't come this evening but surely tomorrow.
2025-03-03 17:27:40 +01:00
Rémi Verschelde 826a0354fb
CI: Run `apt install` before installing libxml2-utils, GHA cache got flaky 2025-03-02 22:34:34 +01:00
Rémi Verschelde bb7834390c CI: Remove outdated reference to ubuntu-20.04 2025-02-11 18:05:22 +01:00
Thaddeus Crews 46bc07540d
CI: Separate Android editor artifacts 2025-02-07 10:16:10 -06:00
Rémi Verschelde 327e5d3a4c CI: Add a Linux job for `template_debug` 2025-02-04 18:54:53 +01:00
Thaddeus Crews b8480ffa21
CI: Change godot-cpp from workflow to action 2025-01-20 13:36:14 -06:00
Thaddeus Crews 32563011e1
CI: Tighten timeout period for all jobs 2025-01-17 14:36:10 -06:00
Rémi Verschelde b7c0a0fbd1 Merge pull request #101387 from picoxr/add-picoos-immersivemode
Add PICO OS Immersive Mode
2025-01-13 20:22:11 +01:00
ygz-bd a2bfb7cff2 Enable XR Preview Mode for PICO OS
Supported features in the immersive preview mode
- Passthrough
- Hand tracking
Notes:
- Multi-window is only available for internal apps on PICO OS, therefore launching adjacent windows is not possible currently.
- Passthrough splash screen is not supported on PICO OS
2025-01-13 16:34:22 +00:00
Rémi Verschelde 829ad307f8 CI: Install apt dependencies directly, works around issue with awalsh128/cache-apt-pkgs-action 2025-01-09 19:56:30 +01:00
Rémi Verschelde 16a4919a51
Merge pull request #100912 from Repiteo/ci/single-concurrency
CI: Fix GHA bug by defining a single concurrency
2025-01-03 00:49:25 +01:00
Thaddeus Crews 4f7e04a959
CI: Only define single concurrency 2024-12-29 21:27:31 -06:00
Thaddeus Crews 048f8442e3
Style: Minor pre-commit & `yaml` adjustments 2024-12-29 10:51:11 -06:00
Thaddeus Crews 8642e970c5
C#: Add option to treat warnings as errors 2024-12-18 10:23:41 -06:00
Rémi Verschelde 4047e4b894
.NET: Downgrade Microsoft.CodeAnalysis.CSharp to 4.8.0 for compat with SDK 8.0.1xy
And for CI, set up .NET SDK 8.0.100 explicitly to test our min supported version.
2024-12-17 15:56:56 +01:00
HP van Braam 70dbc311d1 Exclude known thirdparty/ ubsan errors
In my quest to make ubsan failures a build failure I've added all
current ubsan errors by type to a new suppression file which we will
then also use with CI.

The idea is to only add known ubsan errors to this file, so this is not
a blanket exclusion of thirdparty/ this means that if we get new or
unexpected ubsan in thirdparty/ builds would fail.
2024-12-13 23:11:35 +01:00
Rémi Verschelde 82d51a3902
Merge pull request #99709 from AThousandShips/cache_size_improve
[Buildsystem] Tweak cache sizes for CI
2024-12-12 14:10:04 +01:00
Thaddeus Crews be65514c11
Merge pull request #100042 from Calinou/ci-xmllint-quiet
GitHub Actions: Use quiet xmllint output to only print error lines
2024-12-11 17:35:49 -06:00
Thaddeus Crews 9bb747e0e8
CI: Remove leading-underscore teams from `CODEOWNERS` 2024-12-11 11:17:44 -06:00
Thaddeus Crews 57d08dbec3
C#: Fix warnings caught by new problem-matchers
• Restore MSVC problem matcher for Linux builds
2024-12-10 14:04:35 -06:00
Hugo Locurcio cec037b1a8
GitHub Actions: Use quiet xmllint output to only print error lines
Success lines are no longer printed, making the CI log shorter
and faster to read.
2024-12-05 14:03:19 +01:00
Thaddeus Crews 357679ceb8
CI: Add explicit problem matchers 2024-11-27 16:47:34 -06:00
A Thousand Ships 344d678bbe
[Buildsystem] Tweak cache sizes for CI 2024-11-26 14:50:55 +01:00
Thaddeus Crews 7c9d0300b7 Merge pull request #99332 from Repiteo/ci/bump-scons
CI: Bump SCons to latest (4.8.0 → 4.8.1)
2024-11-25 13:22:24 -06:00
A Thousand Ships a0c47980c0
[Codeowners] Add missing test ownership 2024-11-20 13:46:46 +01:00
Thaddeus Crews b31cc6960d
CI: Bump SCons to latest (4.8.0 → 4.8.1) 2024-11-16 13:16:48 -06:00
Thaddeus Crews 0e4a4e3c4d
SCons: Improve cache purging logic
• Implement caching via SCons arguments, rather than environment variables
2024-11-15 08:29:58 -06:00
Thaddeus Crews 66fe2c8b44
SCons: Bump minimum SCons & Python versions
SCons: 3.1.2 → 4.0
Python: 3.6 → 3.8
2024-11-12 11:30:24 -06:00
Thaddeus Crews 8d1462c748
CI: Update Linux runners to Ubuntu 24.04 2024-11-10 14:05:27 -06:00
A Thousand Ships 9923268d74
[Web] Don't cache emsdk
Due to how caches are accessed this cache is almost useless, it only
matters if it is from the same branch or a base branch, and is identical
between branches, so caching it just clutters the build cache
2024-11-09 16:16:15 +01:00
David Snopek 09e09d9335 Patch the OpenXR headers to get EGL from GLAD if we're using it 2024-11-04 10:43:07 -06:00
Thaddeus Crews 9169ace8f2
Merge pull request #98399 from Repiteo/codeowners-2-return-of-jafar
Implement `CODEOWNERS` corrections
2024-10-29 19:25:56 -05:00
Clay John 748f4079e3
Merge pull request #96439 from darksylinc/matias-TheForge-pr03-rebased
Add Swappy & Pre-Transformed Swapchain
2024-10-29 12:34:40 -07:00
Matias N. Goldberg aaa0e2fddf Add Swappy & Pre-Transformed Swapchain
- Adds Swappy for Android for stable frame pacing
- Implements pre-transformed Swapchain so that Godot's compositor is in
charge of rotating the screen instead of Android's compositor
(performance optimization for phones that don't have HW rotator)

============================

The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.

Changes from original PR:

- Removed "display/window/frame_pacing/android/target_frame_rate" option
to use Engine::get_max_fps instead.
- Target framerate can be changed at runtime using Engine::set_max_fps.
- Swappy is enabled by default.
- Added documentation.
- enable_auto_swap setting is replaced with swappy_mode.
2024-10-28 18:55:37 -03:00
Thaddeus Crews 07e759b74a
Merge pull request #97771 from dsnopek/openxr-linux-egl
OpenXR: Add support for Wayland on Linux
2024-10-25 13:04:08 -05:00
Thaddeus Crews 99ef817098
Implement `CODEOWNERS` corrections 2024-10-22 09:50:38 -05:00
Thaddeus Crews 44b797fbe6
Merge pull request #97446 from Repiteo/ci/windows-gcc-action
CI: Add MinGW/GCC build to Windows GHA
2024-10-10 18:13:16 -05:00
Thaddeus Crews a44f691fc7
CI: Add MinGW/GCC build to Windows GHA 2024-10-10 10:10:55 -05:00
Thaddeus Crews 580b9d2aca
Update `CODEOWNERS` 2024-10-09 10:24:05 -05:00
David Snopek 256699ee31 OpenXR: Add support for Wayland on Linux 2024-10-04 11:44:05 -05:00
Rémi Verschelde a53d0a36e4
Merge pull request #97503 from Repiteo/ci/merge_queue
CI: Support merge queues with default runner
2024-09-29 00:47:05 +02:00
A Thousand Ships ae45d19ad6
Add a few missing CODEOWNERS 2024-09-28 11:58:43 +02:00
Thaddeus Crews cb9a457153
CI: Support merge queues with default runner 2024-09-26 11:49:34 -05:00
A Thousand Ships 0fdbd22f56
Update CODEOWNERS
* Added shared responsibilities for documentation and tests
* Made buildsystem manage all build scripts (uniquely)
* Cleaned up unused cases
* Added unmanaged cases
2024-09-25 16:48:00 +02:00
Thaddeus Crews 593744b733
CI: Improve `godot-cpp` actions 2024-09-19 08:37:42 -05:00
Rémi Verschelde 7174e2192b
Merge pull request #96967 from m4gr3d/update_android_editor_flavors
[Android editor] Update the Android editor flavors
2024-09-16 13:35:28 +02:00
Fredia Huya-Kouadio 741efa632a Update the Android editor flavors to avoid vendor-specific references 2024-09-13 08:53:29 -07:00
Thaddeus Crews 41a81f5360
Style: Format yaml files 2024-09-13 08:06:53 -05:00
A Thousand Ships df29cc696f
[Core] Optionally delete `Ref` `nullptr` comparisons
Adds an optional (default false) compile option to enable comparing
`Ref` to `nullptr` to ensure correct use, as well as future expandsion
for more general dev checks (enabled with `dev_mode`)
2024-09-12 11:26:49 +02:00
Fredia Huya-Kouadio 9dc0543da7 Improve support for XR projects 2024-09-06 00:35:50 -07:00
Jan Haller c89a57d4c2 CI: add C compile step for gdextension_interface.h
It has happened repeatedly that C++ code accidentally crept into the
GDExtension C header, a notable example being use of the `bool` type.
This change adds a CI step to check the header with a C-only compiler.
2024-09-02 19:03:35 +02:00
Alula 346cbc7f1f
Add support for compiling with VS clang-cl toolset 2024-08-28 13:30:44 -05:00
Stuart Carnie 2d0165574d
Add Metal support for macOS (arm64) and iOS 2024-08-20 12:11:06 +02:00
David Snopek dd78ce4217 Update GDExtension related CI after Godot 4.3-stable's release 2024-08-15 07:38:49 -05:00
Rémi Verschelde d32a10897d
CI: Update Emscripten to 3.1.64
This is the version we're using for 4.3-stable.
2024-08-08 11:17:35 +02:00
Fabio Alessandrelli 96feb924e8 [Web] Enable the closure compiler in CI
Also fixes some JSDoc annotations in GodotAudio
2024-07-26 13:27:52 +02:00
Rémi Verschelde a713ce7b9e
Merge pull request #94444 from Repiteo/ci/bump-scons
CI: Bump SCons version (4.7.0→4.8.0)
2024-07-22 17:24:07 +02:00
Thaddeus Crews 75a70d888a
CI: Bump SCons version (4.7.0→4.8.0) 2024-07-22 09:03:34 -05:00
Rémi Verschelde eb6c9142ca
Merge pull request #94442 from Repiteo/ci/revert-python-version
Revert "CI: Pin Python 3.12.3 to workaround GHA issue"
2024-07-22 14:12:51 +02:00
A Thousand Ships a2d16c0313
[CI] Run unit tests on desktop release templates 2024-07-18 15:17:33 +02:00
Thaddeus Crews 8039500f93
Revert "CI: Pin Python 3.12.3 to workaround GHA issue"
This reverts commit 4fd7b2fc0f.
2024-07-16 11:46:52 -05:00
A Thousand Ships 32f8292679
[CI] Upload build cache before running tests
This improves turnaround time on large PRs where compilation is
successful but unit testing or similar fails, forcing recompilation of
unchanged code
2024-07-13 17:45:37 +02:00
Fredia Huya-Kouadio 8026706748 Update the github Android builds config
The configuration was updated to generate:
- Godot Android Editor build
- Godot Android template build for arm32
- Godot Android template build for arm64

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-06-26 12:44:15 -07:00
Rémi Verschelde 06f4968a82
CI: Keep GHA artifacts for 60 days 2024-06-21 10:34:00 +02:00
Raul Santos 65cd0c86f9
C#: Escape generated members 2024-06-15 19:07:42 +02:00
Rémi Verschelde 4fd7b2fc0f
CI: Pin Python 3.12.3 to workaround GHA issue
macOS runners can't extract the 3.12.4 tarball properly it seems.
https://github.com/actions/setup-python/issues/886
2024-06-10 11:29:54 +02:00
bruvzg db93bbbc10
[CI] Enable ANGLE static linking. 2024-05-28 17:28:17 +03:00
Rémi Verschelde a63c37dca1
SCons: Bump min version to 3.1.2, test it on CI with one Linux job
The min SCons version had to be bumped as SCons 3.0 before 3.0.3 seems
broken (see #92043), and there's little gain from supporting 3.0.3-3.0.5.

3.1.2 is also the first version to avoid ambiguities between Python 2
and Python 3 usage, so we finally use it as the minimum baseline.

Also test against Python 3.6 which is also our minimum supported version.
This should help prevent regressions whenever we modernize the build scripts.
2024-05-17 11:18:57 +02:00
Rémi Verschelde 734f820be4
CI: Re-add `CHANGED_FILES` logic for pre-commit checks
Fixes #91831.
2024-05-11 15:55:23 +02:00
Rémi Verschelde 4778b24366
Merge pull request #91597 from Repiteo/ci/pre-commit-handle-everything
CI: Overhaul static checks to use `pre-commit`
2024-05-08 18:22:59 +02:00
Thaddeus Crews df969ff742
CI: Overhaul static checks to use `pre-commit` 2024-05-08 10:30:24 -05:00
Rémi Verschelde 7d03b1de0b
Style: Trim trailing whitespace and ensure newline at EOF
Found by apply the file_format checks again via #91597.
2024-05-08 10:12:46 +02:00
Rémi Verschelde 8ee0851816
CI: Use Emscripten 3.1.59 for Web platform
Works around CI failure due to mismatch between current emsdk and older releases.
2024-05-08 01:10:23 +02:00
Rémi Verschelde 4b070e8031
Fix various typos with codespell
Using 2.2.7.dev217+g10c2abcf.

Had to add `colour` to the ignore list as we used it as an alias/keyword for the
documentation of color-related APIs.
Also ignore recommendations to change `thirdparty` to either `third-party` or
`third party`, which are correct but we use the former fairly consistently.
2024-05-07 10:08:42 +02:00
Thaddeus Crews aa3ad1889f
Buildsystem: Speedup `pre-commit` static check 2024-05-01 10:04:03 -05:00
A Thousand Ships 24ad73b13f
[CI] [macOS] Build for both `arm64` and `x86_64`
Creates a universal build, to catch discrepancies on different
architectures
2024-04-24 13:00:30 +02:00
A Thousand Ships 836845f5a2
[CI] [macOS] Fix CI with new GitHub runners
New `macos-latest` run on an arm64 image instead of x86_64 breaking the
editor workflow.
2024-04-23 20:01:32 +02:00
Andrew Morrow 5b5ec8f4dc
Bump github workflows to SCons 4.7 2024-04-05 17:09:10 -04:00
Adam Scott 56686cd1fb
Remove buggy first interaction 2024-04-05 08:45:42 -04:00
Adam Scott 3df22bf72c
Fix first interaction line breaks 2024-04-04 16:41:42 -04:00
Adam Scott fabd6d8ac3
Add first interaction action to better inform newcomers 2024-04-04 08:42:18 -04:00
A Thousand Ships 950743c3d8
[CI] Improve fetching of changed files
PRs always use a merge into the repo on checkout, so checking for
`HEAD^1` will show all the changes regardless of the number of commits
in a PR
2024-03-28 13:53:36 +01:00
A Thousand Ships 62531ea2d1
[CI] Work around diff size limit for static checks 2024-03-27 17:01:39 +01:00
Aaron Franke 2b2dec1f60
CI: Enable submodules on the checkout action 2024-03-15 19:53:06 -07:00
Rémi Verschelde aa8e9fee63
Merge pull request #88671 from akien-mga/ci-actions-update
CI: Update actions to latest versions, use default runner .NET version
2024-03-06 13:17:00 +01:00
Raul Santos 97851f0340
Move dotnet-format script to pre-commit
Co-authored-by: Paul Joannon <437025+paulloz@users.noreply.github.com>
2024-03-02 08:25:48 +01:00
Aarni Koskela 20c563de40
Replace hand-written pre-commit hooks with `pre-commit` Python tool
`pre-commit` can be installed with pip, and configured in the Godot repo with
`pre-commit install`. It can then easily be run both locally with
`pre-commit run`, and on CI, in a cross-platform way.

This makes it much easier for contributors to set up pre-commit hooks,
without having to manually copy files to their git folder.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-02-26 14:57:53 +01:00
David Snopek fa81e12588 Fix lint errors in WebXR module 2024-02-23 16:24:58 -06:00
David Snopek 39bd685814 Use godot-cpp 4.2 for the "Godot CPP" CI workflow 2024-02-23 15:16:09 -06:00
Rémi Verschelde ad8d3cf1c9
CI: Update actions to latest versions, use default runner .NET version 2024-02-22 23:02:35 +01:00
Raul Santos 99b4f3086d
C#: Run source generators tests in CI
Also fixes ScriptPathAttributeGenerator for generic types and its test.
2024-02-19 19:41:15 +01:00
A Thousand Ships c7dee690cd
Fix formatting in bug report template
Unescaped backtics caused visual bugs
2024-02-17 19:43:15 +01:00
Adam Scott af58144565
Remove 3.x references in the pull request template 2024-02-09 15:40:20 -05:00
Rémi Verschelde 7612e655a9
Merge pull request #86006 from AThousandShips/issue_screenshot
Instruct users to add code/errors as text in issues
2024-02-09 12:14:55 +01:00
Andreia Gaita 7638a6c981 Add new VS proj generation logic that supports any platform that wants to opt in
Custom Visual Studio project generation logic that supports any platform that has a msvs.py
script, so Visual Studio can be used to run scons for any platform, with the right defines per target.

Invoked with `scons vsproj=yes`

To generate build configuration files for all platforms+targets+arch combinations, users should call

```
scons vsproj=yes platform=XXX target=YYY [other build flags]
```

for each combination of platform+target[+arch]. This will generate the relevant vs project files but
skip the build process, so that project files can be quickly generated without waiting for a command line
build. This lets project files be quickly generated even if there are build errors.

All possible combinations of platform+target are created in the solution file by default, but they
won't do anything until each one is set up with a scons vsproj=yes command for the respective platform
in the appropriate command line. This lets users only generate the combinations they need, and VS
won't have to parse settings for other combos.

Only platforms that opt in to vs proj generation by having a msvs.py file in the platform folder are included.
Platforms with a msvs.py file will be added to the solution, but only the current active platform+target+arch
will have a build configuration generated, because we only know what the right defines/includes/flags/etc are
on the active build target currently being processed by scons.

Platforms that don't support an editor target will have a dummy editor target that won't do anything on build,
but will have the files and configuration for the windows editor target.

To generate AND build from the command line, run

```
scons vsproj=yes vsproj_gen_only=no
```
2024-01-31 16:42:42 +01:00
Riteo 7e0f7d3abd Add Wayland support
Not everything is yet implemented, either for Godot or personal
limitations (I don't have all hardware in the world). A brief list of
the most important issues follows:

- Single-window only: the `DisplayServer` API doesn't expose enough
information for properly creating XDG shell windows.

- Very dumb rendering loop: this is very complicated, just know that
the low consumption mode is forced to 2000 Hz and some clever hacks are
in place to overcome a specific Wayland limitation. This will be
improved to the extent possible both downstream and upstream.

- Features to implement yet: IME, touch input, native file dialog,
drawing tablet (commented out due to a refactor), screen recording.

- Mouse passthrough can't be implement through a poly API, we need a
rect-based one.

- The cursor doesn't yet support fractional scaling.

- Auto scale is rounded up when using fractional scaling as we don't
have a per-window scale query API (basically we need
`DisplayServer::window_get_scale`).

- Building with `x11=no wayland=yes opengl=yes openxr=yes` fails.

This also adds a new project property and editor setting for selecting the
default DisplayServer to start, to allow this backend to start first in
exported projects (X11 is still the default for now). The editor setting
always overrides the project setting.

Special thanks to Drew Devault, toger5, Sebastian Krzyszkowiak, Leandro
Benedet Garcia, Subhransu, Yury Zhuravlev and Mara Huldra.
2024-01-30 16:44:47 +01:00
Rémi Verschelde cd5e973d7a
Merge pull request #86717 from mrbbbaixue/d3d12-sdk-install-python
Add a python script to install Direct3D 12 SDK components.
2024-01-26 11:43:49 +01:00
Yuri Sizov 8d5c4b3bd3 Merge pull request #87575 from akien-mga/ci-emsdk-14
CI: Update `mymindstorm/setup-emsdk` to v14, should fix cache folder conflicts
2024-01-25 16:27:28 +01:00