55 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: PR Lint keyboards
 | 
						|
 | 
						|
on:
 | 
						|
  pull_request:
 | 
						|
    paths:
 | 
						|
    - 'keyboards/**'
 | 
						|
 | 
						|
jobs:
 | 
						|
  lint:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
 | 
						|
    container: qmkfm/qmk_cli
 | 
						|
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v2
 | 
						|
      with:
 | 
						|
        fetch-depth: 0
 | 
						|
 | 
						|
    - uses: trilom/file-changes-action@v1.2.4
 | 
						|
      id: file_changes
 | 
						|
      with:
 | 
						|
        output: '\n'
 | 
						|
 | 
						|
    - name: Print info
 | 
						|
      run: |
 | 
						|
        git rev-parse --short HEAD
 | 
						|
        echo ${{ github.event.pull_request.base.sha }}
 | 
						|
        echo '${{ steps.file_changes.outputs.files}}'
 | 
						|
 | 
						|
    - name: Run qmk lint
 | 
						|
      shell: 'bash {0}'
 | 
						|
      run: |
 | 
						|
        QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}')
 | 
						|
        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}"
 | 
						|
 | 
						|
            qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB}
 | 
						|
            exit_code=$(($exit_code + $?))
 | 
						|
          fi
 | 
						|
        done
 | 
						|
        if [[ $exit_code -gt 255 ]]; then
 | 
						|
            exit 255
 | 
						|
        fi
 | 
						|
        exit $exit_code
 |