| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- name: PR Lint keyboards
- on:
- pull_request:
- paths:
- - 'keyboards/**'
- jobs:
- info:
- runs-on: ubuntu-latest
- container: qmkfm/base_container
- steps:
- - uses: actions/checkout@v2
- with:
- fetch-depth: 0
- - name: Print info
- run: |
- git rev-parse --short HEAD
- echo ${{ github.event.pull_request.base.sha }}
- git diff --name-only ${{ github.event.pull_request.base.sha }}...
- - name: Run qmk info
- shell: 'bash {0}'
- run: |
- QMK_CHANGES=$(git diff --name-only ${{ github.event.pull_request.base.sha }}...)
- 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}"
- # TODO: info info always returns 0 - right now the only way to know failure is to inspect log lines
- qmk info -kb ${KB} 2>&1 | tee /tmp/$$
- !(grep -cq ☒ /tmp/$$)
- : $((exit_code = $exit_code + $?))
- fi
- done
- exit $exit_code
|