12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- name: 📊 Static Checks
- on:
- workflow_call:
- concurrency:
- group: ci-${{ github.actor }}-${{ github.head_ref || github.run_number }}-${{ github.ref }}-static
- cancel-in-progress: true
- jobs:
- static-checks:
- name: Code style, file formatting, and docs
- runs-on: ubuntu-24.04
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- fetch-depth: 2
- - name: Install APT dependencies
- uses: awalsh128/cache-apt-pkgs-action@latest
- with:
- packages: libxml2-utils
- - name: Install Python dependencies and general setup
- run: |
- pip3 install pytest==7.1.2
- git config diff.wsErrorHighlight all
- - name: Get 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: |
- bash ./misc/scripts/gitignore_check.sh
- - name: Style checks via pre-commit
- uses: pre-commit/action@v3.0.1
- with:
- extra_args: --files ${{ env.CHANGED_FILES }}
- - name: Python builders checks via pytest
- run: |
- 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: Run C compiler on `gdextension_interface.h`
- run: |
- gcc -c core/extension/gdextension_interface.h
|