Commit Graph

218 Commits

Author SHA1 Message Date
A Thousand Ships
5318c0ae6b
[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

(cherry picked from commit 950743c3d8)
2024-04-08 15:21:52 +02:00
Rémi Verschelde
a3e39e2f57
CI: Update actions to latest versions
(cherry picked from commit ad8d3cf1c9)
2024-03-11 15:01:22 +01:00
Rémi Verschelde
10da4db645
CI: Update mymindstorm/setup-emsdk to v14, should fix cache folder conflicts
https://github.com/mymindstorm/setup-emsdk/releases/tag/v14

Co-authored-by: Yuri Sizov <yuris@humnom.net>
(cherry picked from commit 35ef0b32b3)
2024-03-09 23:31:03 +01:00
Yuri Sizov
cf97df236d Fix the Web platform team's codeowners link
(cherry picked from commit 10e714a975)
2024-01-23 20:22:00 +01:00
Rémi Verschelde
1e460e37c3 CI: Pin Emscripten to 3.1.39
Due to #82865, newer versions can't be used for dlink-enabled Web builds.
This isn't a problem for CI which doesn't use dlink, but it's clearer for
users if our CI version matches the one we use for official builds.

(cherry picked from commit 51aff13ef4)
2024-01-23 19:09:45 +01:00
Hugo Locurcio
e33eb36231 Use colored output on CI for Doctest
GitHub Actions output is not considered a TTY, so colored output
must be forced.

(cherry picked from commit dec26e15b3)
2024-01-23 16:54:03 +01:00
Rémi Verschelde
6122cf3178 Web: Workaround Emscripten 3.1.42+ LTO regression
Fixes #80010.

(cherry picked from commit b064008c07)
2023-09-20 22:44:04 +02:00
Rémi Verschelde
9fb23c4e56 CI: Bump version for actions/checkout@v4 and actions/setup-dotnet@v3
(cherry picked from commit de14f1d295)
2023-09-20 22:44:04 +02:00
Rémi Verschelde
e30ff075ce CI: Propagated error code when glue generation fails
This used to be ignored as we ran the X11 version with Vulkan software renderer and xvfb-run, which could crash at the time. Now that we have headless mode, this is not a problem anymore.

(cherry picked from commit 5eb8253fc0)
2023-09-20 22:44:04 +02:00
Rémi Verschelde
3076f2f9c9 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

(cherry picked from commit a890457693)
2023-09-20 22:44:04 +02:00
Rémi Verschelde
caa8c82567 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.

(cherry picked from commit 4646762c81)
2023-08-02 18:42:29 +02:00
Yuri Sizov
e1a12879e9 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.

(cherry picked from commit deb6025781)
2023-08-02 17:10:30 +02:00
Rémi Verschelde
e9cdd1bf08 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.

(cherry picked from commit 611123f7fd)
2023-08-02 17:07:11 +02:00
Rémi Verschelde
529a55bab2
Bump version to 4.1.1-rc 2023-07-05 22:14:15 +02: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