- name: PR Lint keyboards
-
- on:
- pull_request:
- paths:
- - 'keyboards/**'
-
- jobs:
- lint:
- runs-on: ubuntu-latest
-
- container: qmkfm/qmk_cli
-
- steps:
- - uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Install dependencies
- run: pip3 install -r requirements-dev.txt
-
- - uses: trilom/file-changes-action@v1.2.4
- id: file_changes
- with:
- output: '\n'
-
- - name: Print info
- run: |
- git rev-parse --short HEAD
- echo ${{ github.event.pull_request.base.sha }}
- echo '${{ steps.file_changes.outputs.files}}'
-
- - name: Run qmk lint
- shell: 'bash {0}'
- run: |
- QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}')
- QMK_KEYBOARDS=$(qmk list-keyboards)
-
- exit_code=0
- for KB in $QMK_KEYBOARDS; do
- KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)')
- if [[ -z "$KEYBOARD_CHANGES" ]]; then
- # skip as no changes for this keyboard
- continue
- fi
-
- KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/)
- if [[ $KEYMAP_ONLY -gt 0 ]]; then
- echo "linting ${KB}"
-
- qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB}
- exit_code=$(($exit_code + $?))
- fi
- done
- if [[ $exit_code -gt 255 ]]; then
- exit 255
- fi
- exit $exit_code
|