2020-06-20 21:19:56 +00:00
|
|
|
name: PR Lint keyboards
|
|
|
|
|
2022-12-22 23:41:16 +00:00
|
|
|
permissions:
|
|
|
|
contents: read
|
|
|
|
|
2020-06-20 21:19:56 +00:00
|
|
|
on:
|
|
|
|
pull_request:
|
|
|
|
paths:
|
|
|
|
- 'keyboards/**'
|
|
|
|
|
|
|
|
jobs:
|
2020-11-07 17:56:08 +00:00
|
|
|
lint:
|
2020-06-20 21:19:56 +00:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
2023-03-17 01:32:09 +00:00
|
|
|
container: ghcr.io/qmk/qmk_cli
|
2020-06-20 21:19:56 +00:00
|
|
|
|
|
|
|
steps:
|
2023-02-28 20:27:11 +00:00
|
|
|
- name: Disable safe.directory check
|
|
|
|
run : git config --global --add safe.directory '*'
|
|
|
|
|
2022-06-29 06:44:54 +00:00
|
|
|
- uses: actions/checkout@v3
|
2020-06-20 21:19:56 +00:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
|
|
|
|
2022-06-09 20:02:16 +00:00
|
|
|
- name: Install dependencies
|
|
|
|
run: pip3 install -r requirements-dev.txt
|
|
|
|
|
2022-11-28 20:04:04 +00:00
|
|
|
- name: Get changed files
|
2020-08-17 09:12:45 +00:00
|
|
|
id: file_changes
|
2023-05-30 01:10:57 +00:00
|
|
|
uses: tj-actions/changed-files@v36
|
2020-08-17 09:12:45 +00:00
|
|
|
|
2020-06-20 21:19:56 +00:00
|
|
|
- name: Print info
|
|
|
|
run: |
|
|
|
|
git rev-parse --short HEAD
|
|
|
|
echo ${{ github.event.pull_request.base.sha }}
|
2022-11-28 20:04:04 +00:00
|
|
|
echo '${{ steps.file_changes.outputs.all_changed_files}}'
|
2020-06-20 21:19:56 +00:00
|
|
|
|
2020-11-07 17:56:08 +00:00
|
|
|
- name: Run qmk lint
|
2020-06-20 21:19:56 +00:00
|
|
|
shell: 'bash {0}'
|
|
|
|
run: |
|
2022-11-28 20:04:04 +00:00
|
|
|
QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.all_changed_files}}' | sed 's/ /\n/g')
|
2020-06-20 21:19:56 +00:00
|
|
|
QMK_KEYBOARDS=$(qmk list-keyboards)
|
|
|
|
|
|
|
|
exit_code=0
|
2023-01-22 03:15:10 +00:00
|
|
|
|
2020-06-20 21:19:56 +00:00
|
|
|
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}"
|
|
|
|
|
2020-11-07 19:36:47 +00:00
|
|
|
qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB}
|
2020-11-10 15:21:59 +00:00
|
|
|
exit_code=$(($exit_code + $?))
|
2020-06-20 21:19:56 +00:00
|
|
|
fi
|
|
|
|
done
|
2023-01-22 03:15:10 +00:00
|
|
|
|
|
|
|
qmk format-text ${{ steps.file_changes.outputs.all_changed_files}} || true
|
|
|
|
for file in ${{ steps.file_changes.outputs.all_changed_files}}; do
|
|
|
|
if ! git diff --quiet $file; then
|
|
|
|
echo "File '${file}' Requires Formatting"
|
|
|
|
echo "::error file=${file}::Requires Formatting"
|
|
|
|
exit_code=$(($exit_code + 1))
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2020-11-10 15:21:59 +00:00
|
|
|
if [[ $exit_code -gt 255 ]]; then
|
|
|
|
exit 255
|
|
|
|
fi
|
2020-06-20 21:19:56 +00:00
|
|
|
exit $exit_code
|