mirror of
https://github.com/godotengine/godot-docs.git
synced 2025-12-31 17:49:03 +03:00
CI: Integrate pre-commit for style checks
This commit is contained in:
16
.github/workflows/ci.yml
vendored
16
.github/workflows/ci.yml
vendored
@@ -15,19 +15,11 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Style checks via pre-commit
|
||||
uses: pre-commit/action@v3.0.1
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
# Install tools used by `_tools/format.sh`.
|
||||
sudo apt-get -qq update
|
||||
sudo apt-get -qq install dos2unix recode
|
||||
sudo pip3 install -r requirements.txt
|
||||
sudo pip3 install codespell
|
||||
|
||||
- name: Linter checks
|
||||
run: |
|
||||
bash _tools/format.sh
|
||||
|
||||
codespell -D- -D _tools/codespell-dict.txt -I _tools/codespell-ignore.txt -x _tools/codespell-ignore-lines.txt -S tutorials/i18n/locales.rst {about,community,contributing,getting_started,tutorials}/{*.rst,**/*.rst,**/**/*.rst,**/**/**/*.rst}
|
||||
run: sudo pip3 install -r requirements.txt
|
||||
|
||||
# Use dummy builder to improve performance as we don't need the generated HTML in this workflow.
|
||||
- name: Sphinx build
|
||||
|
||||
18
.pre-commit-config.yaml
Normal file
18
.pre-commit-config.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
default_language_version:
|
||||
python: python3
|
||||
|
||||
repos:
|
||||
- repo: https://github.com/codespell-project/codespell
|
||||
rev: v2.3.0
|
||||
hooks:
|
||||
- id: codespell
|
||||
files: ^(about|community|contributing|getting_started|tutorials)/.*\.rst$
|
||||
additional_dependencies: [tomli]
|
||||
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v5.0.0
|
||||
hooks:
|
||||
- id: end-of-file-fixer
|
||||
- id: fix-byte-order-marker
|
||||
- id: mixed-line-ending
|
||||
args: ['--fix=lf']
|
||||
@@ -1,42 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -uo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
# Loops through all text files tracked by Git.
|
||||
git grep -zIl '' |
|
||||
while IFS= read -rd '' f; do
|
||||
# Exclude csproj and hdr files.
|
||||
if [[ "$f" == *"csproj" ]]; then
|
||||
continue
|
||||
elif [[ "$f" == *"hdr" ]]; then
|
||||
continue
|
||||
fi
|
||||
# Ensures that files are UTF-8 formatted.
|
||||
recode UTF-8 "$f" 2> /dev/null
|
||||
# Ensures that files have LF line endings.
|
||||
dos2unix "$f" 2> /dev/null
|
||||
# Ensures that files do not contain a BOM.
|
||||
sed -i '1s/^\xEF\xBB\xBF//' "$f"
|
||||
# Ensures that files end with newline characters.
|
||||
tail -c1 < "$f" | read -r _ || echo >> "$f";
|
||||
done
|
||||
|
||||
git diff > patch.patch
|
||||
FILESIZE="$(stat -c%s patch.patch)"
|
||||
MAXSIZE=5
|
||||
|
||||
# If no patch has been generated all is OK, clean up, and exit.
|
||||
if (( FILESIZE < MAXSIZE )); then
|
||||
printf "Files in this commit comply with the formatting rules.\n"
|
||||
rm -f patch.patch
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# A patch has been created, notify the user, clean up, and exit.
|
||||
printf "\n*** The following differences were found between the code "
|
||||
printf "and the formatting rules:\n\n"
|
||||
cat patch.patch
|
||||
printf "\n*** Aborting, please fix your commit(s) with 'git commit --amend' or 'git rebase -i <hash>'\n"
|
||||
rm -f patch.patch
|
||||
exit 1
|
||||
@@ -1085,4 +1085,3 @@ Variant types
|
||||
class_vector3i
|
||||
class_vector4
|
||||
class_vector4i
|
||||
|
||||
|
||||
@@ -108,4 +108,3 @@ Community support
|
||||
Chances are you looked for learning materials outside of what the documentation provides.
|
||||
Without content creators covering the game development process, there would not be this big of a community today.
|
||||
Therefore it seemed only right to mention them in a page about important contributions to the project.
|
||||
|
||||
|
||||
@@ -181,4 +181,3 @@ Alternatively,
|
||||
or built-in variable in the script editor.
|
||||
* Right-clicking on nodes and choosing **Open Documentation** or choosing **Lookup Symbol**
|
||||
for elements in script editor will directly open their documentation.
|
||||
|
||||
|
||||
8
pyproject.toml
Normal file
8
pyproject.toml
Normal file
@@ -0,0 +1,8 @@
|
||||
[tool.ruff]
|
||||
line-length = 120
|
||||
|
||||
[tool.codespell]
|
||||
dictionary = ["_tools/codespell-dict.txt", "-"]
|
||||
ignore-words = "_tools/codespell-ignore.txt"
|
||||
exclude-file = "_tools/codespell-ignore-lines.txt"
|
||||
skip = "tutorials/i18n/locales.rst"
|
||||
@@ -11,4 +11,3 @@ is not maintained or supported in Godot 4.x. While not officially supported, the
|
||||
partially work for some Godot and Blender versions, particularly before Blender version 4.0.
|
||||
For complete docs on the Blender exporter, see the
|
||||
`previous version of this page <https://docs.godotengine.org/en/4.0/tutorials/assets_pipeline/escn_exporter/index.html>`__.
|
||||
|
||||
|
||||
@@ -119,4 +119,3 @@ Emacs
|
||||
^^^^^
|
||||
|
||||
Check the official instructions to configure `LSP <https://github.com/godotengine/emacs-gdscript-mode#auto-completion-with-the-language-server-protocol-lsp>`_, and `DAP <https://github.com/godotengine/emacs-gdscript-mode#using-the-debugger>`_.
|
||||
|
||||
|
||||
@@ -694,4 +694,3 @@ The following script uses the NavigationServer to update a navigation region wit
|
||||
NavigationServer3D.RegionSetNavigationMesh(_regionRid, _navigationMesh);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -182,4 +182,3 @@ If no path is supplied Godot will move the libraries into the same directory as
|
||||
"res://bin/libdependency.linux.template_release.arm64.so" : "",
|
||||
"res://bin/libdependency.linux.template_release.rv64.so" : ""
|
||||
}
|
||||
|
||||
|
||||
@@ -385,4 +385,3 @@ This is why many XR runtimes only use it as a last resort and will attempt to us
|
||||
This is our advice as well: limit your action map to the interaction profiles for devices you have actually tested your game with.
|
||||
The Oculus Touch controller is widely used as a fallback controller by many runtimes.
|
||||
If you are able to test your game using a Meta Rift or Quest and add this profile there is a high probability your game will work with other headsets.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user