New command: qmk lint (#10761)
* Basic qmk lint command * check for keymap readme * change the workflow from qmk info to qmk lint * add a strict mode * parsing -> parse * document qmk lint * small info logging cleanup * Apply suggestions from code review Co-authored-by: Ryan <fauxpark@gmail.com> * honor --strict in more places * change the job name to lint Co-authored-by: Ryan <fauxpark@gmail.com>
This commit is contained in:
		
							parent
							
								
									7ce5402417
								
							
						
					
					
						commit
						4d33d72975
					
				
					 7 changed files with 153 additions and 24 deletions
				
			
		
							
								
								
									
										51
									
								
								.github/workflows/lint.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								.github/workflows/lint.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,51 @@
 | 
			
		|||
name: PR Lint keyboards
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
    paths:
 | 
			
		||||
    - 'keyboards/**'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  lint:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    container: qmkfm/base_container
 | 
			
		||||
 | 
			
		||||
    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}
 | 
			
		||||
          fi
 | 
			
		||||
        done
 | 
			
		||||
        exit $exit_code
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue