Enhance checks for invalid keyboard build targets (#26122)

Co-authored-by: フィルターペーパー <76888457+filterpaper@users.noreply.github.com>
This commit is contained in:
Joel Challis 2026-04-05 06:38:40 +01:00 committed by GitHub
parent 933cb8cc35
commit 2bd8e43256
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 30 additions and 17 deletions

View File

@ -89,23 +89,7 @@ jobs:
if: always()
shell: 'bash {0}'
run: |
exit_code=0
for file in $(find keyboards/ -name rules.mk | grep -v /keymaps/ | grep -v /common/ | grep -v /lib/); do
dir=$(dirname $file)
$(find $dir -name keyboard.json -exec false {} +)
if [[ $? == 0 ]]; then
echo "$dir::Legacy target detected"
((++exit_code))
fi
done
if [[ $exit_code -gt 255 ]]; then
exit 255
fi
exit $exit_code
qmk ci-validate-keyboard-targets
- name: Verify keyboard aliases
if: always()

View File

@ -56,6 +56,7 @@ safe_commands = [
subcommands = [
'qmk.cli.ci.validate_aliases',
'qmk.cli.ci.validate_keyboard_targets',
'qmk.cli.bux',
'qmk.cli.c2json',
'qmk.cli.cd',

View File

@ -0,0 +1,28 @@
"""Validates the list of keyboard targets.
"""
from milc import cli
from pathlib import Path
@cli.subcommand('Validates the list of keyboard targets.', hidden=True)
def ci_validate_keyboard_targets(cli):
errors = set()
for rules_mk in Path('keyboards').glob('**/rules.mk'):
if any({'keymaps', 'common', 'lib'} & set(rules_mk.parts)):
continue
folder = rules_mk.parent
if not any(folder.glob('**/keyboard.json')):
errors.add(folder)
for keymap in Path('keyboards').glob('**/keymaps/'):
folder = keymap.parent
if not any(folder.glob('**/keyboard.json')):
errors.add(folder)
for error in errors:
print(f"{error}::Legacy target detected")
exit(min(len(errors), 255))