CI: Integrate pre-commit for style checks

This commit is contained in:
Thaddeus Crews
2024-11-14 14:08:49 -06:00
parent 5338ea5539
commit f70686cdbe
12 changed files with 30 additions and 62 deletions
+4 -12
View File
@@ -15,19 +15,11 @@ jobs:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Style checks via pre-commit
uses: pre-commit/action@v3.0.1
- name: Install dependencies - name: Install dependencies
run: | run: sudo pip3 install -r requirements.txt
# 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}
# Use dummy builder to improve performance as we don't need the generated HTML in this workflow. # Use dummy builder to improve performance as we don't need the generated HTML in this workflow.
- name: Sphinx build - name: Sphinx build
+18
View 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']
-42
View File
@@ -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
-1
View File
@@ -1085,4 +1085,3 @@ Variant types
class_vector3i class_vector3i
class_vector4 class_vector4
class_vector4i class_vector4i
-1
View File
@@ -108,4 +108,3 @@ Community support
Chances are you looked for learning materials outside of what the documentation provides. 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. 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. 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. or built-in variable in the script editor.
* Right-clicking on nodes and choosing **Open Documentation** or choosing **Lookup Symbol** * Right-clicking on nodes and choosing **Open Documentation** or choosing **Lookup Symbol**
for elements in script editor will directly open their documentation. for elements in script editor will directly open their documentation.
+8
View 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. partially work for some Godot and Blender versions, particularly before Blender version 4.0.
For complete docs on the Blender exporter, see the 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>`__. `previous version of this page <https://docs.godotengine.org/en/4.0/tutorials/assets_pipeline/escn_exporter/index.html>`__.
-1
View File
@@ -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>`_. 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); 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.arm64.so" : "",
"res://bin/libdependency.linux.template_release.rv64.so" : "" "res://bin/libdependency.linux.template_release.rv64.so" : ""
} }
-1
View File
@@ -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. 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. 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. 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.