CI: Run 'qmk info' on keyboard changes (#9212)
This commit is contained in:
parent
e58ab6d326
commit
b6e9ef8dd1
1 changed files with 49 additions and 0 deletions
49
.github/workflows/info.yml
vendored
Normal file
49
.github/workflows/info.yml
vendored
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
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
|
Loading…
Reference in a new issue