ADF 41 | gdlint github action #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Workflow to automatically lint gdscript code | |
name: gdlint on push | |
on: | |
[push, pull_request] | |
jobs: | |
gdlint: | |
name: gdlint code | |
runs-on: ubuntu-latest | |
env: | |
PROBLEMS_THRESHOLD: 88 # The allowed amount of linter problems | |
steps: | |
# Check out the repository | |
- name: Checkout | |
uses: actions/checkout@v4 | |
# Ensure python is installed | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
# Install gdtoolkit | |
- name: Install Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install 'gdtoolkit==4.*' | |
# Lint all the code directories (except addons) and capture the output | |
# "|| true" make sure the github action doesn't stop when there are problems | |
- name: Lint code | |
run: | | |
gdlint assets global resources scenes > gdlint_output.txt 2>&1 || true | |
cat gdlint_output.txt | |
# Parse the output and compare with the threshold | |
- name: Check linter results | |
run: | | |
PROBLEMS=$(grep -oP 'Failure: \K\d+' gdlint_output.txt || echo "0") | |
echo "Problems found: $PROBLEMS, threshold is: $PROBLEMS_THRESHOLD" | |
if [ "$PROBLEMS" -gt "$PROBLEMS_THRESHOLD" ]; then | |
echo "Too many linter problems" | |
exit 1 | |
fi |