summaryrefslogtreecommitdiffstats
path: root/.github/workflows
diff options
context:
space:
mode:
authorThaddeus Crews <repiteo@outlook.com>2024-05-01 16:02:35 -0500
committerThaddeus Crews <repiteo@outlook.com>2024-05-08 10:30:24 -0500
commitdf969ff7426d61c8d32f3a89ec461b47b34e83b2 (patch)
tree61d1981b8e6ba123df4600035d48677b27aa46ab /.github/workflows
parent55b8724bd5188932b69a6ee484ab092cd95d4498 (diff)
downloadredot-engine-df969ff7426d61c8d32f3a89ec461b47b34e83b2.tar.gz
CI: Overhaul static checks to use `pre-commit`
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/static_checks.yml64
1 files changed, 5 insertions, 59 deletions
diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml
index 3ff70077c4..2506cb7227 100644
--- a/.github/workflows/static_checks.yml
+++ b/.github/workflows/static_checks.yml
@@ -19,28 +19,13 @@ jobs:
- name: Install APT dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
with:
- packages: dos2unix libxml2-utils moreutils
+ packages: libxml2-utils
- name: Install Python dependencies and general setup
run: |
- pip3 install pytest==7.1.2 mypy==0.971
+ pip3 install pytest==7.1.2
git config diff.wsErrorHighlight all
- - name: Get changed files
- id: changed-files
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
- if [ "${{ github.event_name }}" == "pull_request" ]; then
- files=$(git diff-tree --no-commit-id --name-only -r HEAD^1..HEAD 2> /dev/null || true)
- elif [ "${{ github.event_name }}" == "push" -a "${{ github.event.forced }}" == "false" -a "${{ github.event.created }}" == "false" ]; then
- files=$(git diff-tree --no-commit-id --name-only -r ${{ github.event.before }}..${{ github.event.after }} 2> /dev/null || true)
- fi
- echo "$files" >> changed.txt
- cat changed.txt
- files=$(echo "$files" | grep -v 'thirdparty' | xargs -I {} sh -c 'echo "./{}"' | tr '\n' ' ')
- echo "CHANGED_FILES=$files" >> $GITHUB_ENV
-
# This needs to happen before Python and npm execution; it must happen before any extra files are written.
- name: .gitignore checks (gitignore_check.sh)
run: |
@@ -49,51 +34,12 @@ jobs:
- name: Style checks via pre-commit
uses: pre-commit/action@v3.0.1
with:
- extra_args: --verbose --files ${{ env.CHANGED_FILES }}
-
- - name: File formatting checks (file_format.sh)
- run: |
- bash ./misc/scripts/file_format.sh changed.txt
-
- - name: Header guards formatting checks (header_guards.sh)
- run: |
- bash ./misc/scripts/header_guards.sh changed.txt
-
- - name: Python scripts static analysis (mypy_check.sh)
- run: |
- if grep -qE '\.py$|SConstruct|SCsub' changed.txt || [ -z "$(cat changed.txt)" ]; then
- bash ./misc/scripts/mypy_check.sh
- else
- echo "Skipping Python static analysis as no Python files were changed."
- fi
-
- - name: Python builders checks via pytest (pytest_builders.sh)
- run: |
- bash ./misc/scripts/pytest_builders.sh
+ extra_args: --verbose
- - name: JavaScript style and documentation checks via ESLint and JSDoc
+ - name: Python builders checks via pytest
run: |
- if grep -q "\.js" changed.txt || [ -z "$(cat changed.txt)" ]; then
- cd platform/web
- npm ci
- npm run lint
- npm run docs -- -d dry-run
- else
- echo "Skipping JavaScript formatting as no Web/JS files were changed."
- fi
+ pytest ./tests/python_build
- name: Class reference schema checks
run: |
xmllint --noout --schema doc/class.xsd doc/classes/*.xml modules/*/doc_classes/*.xml platform/*/doc_classes/*.xml
-
- - name: Documentation checks
- run: |
- doc/tools/doc_status.py doc/classes modules/*/doc_classes platform/*/doc_classes
-
- - name: Spell checks via codespell
- if: github.event_name == 'pull_request' && env.CHANGED_FILES != ''
- uses: codespell-project/actions-codespell@v2
- with:
- skip: "./bin,./thirdparty,*.desktop,*.gen.*,*.po,*.pot,*.rc,./AUTHORS.md,./COPYRIGHT.txt,./DONORS.md,./core/input/gamecontrollerdb.txt,./core/string/locales.h,./editor/project_converter_3_to_4.cpp,./misc/scripts/codespell.sh,./platform/android/java/lib/src/com,./platform/web/node_modules,./platform/web/package-lock.json"
- ignore_words_list: "breaked,colour,curvelinear,doubleclick,expct,findn,gird,hel,inout,lod,mis,nd,numer,ot,requestor,te,thirdparty,vai"
- path: ${{ env.CHANGED_FILES }}