diff options
author | QMK Bot <hello@qmk.fm> | 2023-06-23 23:22:55 +0000 |
---|---|---|
committer | QMK Bot <hello@qmk.fm> | 2023-06-23 23:22:55 +0000 |
commit | 658b6aa3a62b91b3d13dca91163dac69b3a481f9 (patch) | |
tree | 302ddaa77feb3e3a52f9ab540788b4c8db3f58cc | |
parent | 3156cf6da0b36403875b99b0417cb22e2a4f0963 (diff) | |
parent | ac64e060790596c773aa0d38bcebb1d0f67f8e47 (diff) |
Merge remote-tracking branch 'origin/master' into develop
-rw-r--r-- | .github/workflows/lint.yml | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 2c0f07410e..1c0667abba 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -36,6 +36,7 @@ jobs: echo '${{ steps.file_changes.outputs.all_changed_files}}' - name: Run qmk lint + if: always() shell: 'bash {0}' run: | QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.all_changed_files}}' | sed 's/ /\n/g') @@ -72,3 +73,32 @@ jobs: exit 255 fi exit $exit_code + + - name: Verify at most one added keyboard + if: always() + shell: 'bash {0}' + run: | + git reset --hard + git clean -xfd + + # Get the keyboard list and count for the target branch + git checkout -f ${{ github.base_ref }} + git pull --ff-only + QMK_KEYBOARDS_BASE=$(qmk list-keyboards) + QMK_KEYBOARDS_BASE_COUNT=$(qmk list-keyboards | wc -l) + + # Get the keyboard list and count for the PR + git checkout -f ${{ github.head_ref }} + git merge --no-commit --squash ${{ github.base_ref }} + QMK_KEYBOARDS_PR=$(qmk list-keyboards) + QMK_KEYBOARDS_PR_COUNT=$(qmk list-keyboards | wc -l) + + echo "::group::Keyboards changes in this PR" + diff -d -U 0 <(echo "$QMK_KEYBOARDS_BASE") <(echo "$QMK_KEYBOARDS_PR") | grep -vE '^(---|\+\+\+|@@)' | sed -e 's@^-@Removed: @g' -e 's@^+@ Added: @g' + echo "::endgroup::" + + if [[ $QMK_KEYBOARDS_PR_COUNT -gt $(($QMK_KEYBOARDS_BASE_COUNT + 1)) ]]; then + echo "More than one keyboard added in this PR -- see the PR Checklist." + echo "::error::More than one keyboard added in this PR -- see the PR Checklist." + exit 1 + fi |