| name: Auto Lint (triggered by "auto lint" label) | |
| on: | |
| pull_request: | |
| types: | |
| - opened | |
| - edited | |
| - closed | |
| - reopened | |
| - synchronize | |
| - labeled | |
| - unlabeled | |
| # run only one unit test for a branch / tag. | |
| concurrency: | |
| group: ci-lint-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint-by-label: | |
| if: contains(github.event.pull_request.labels.*.name, 'lint wanted') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| token: ${{ secrets.PAT }} | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| - name: Test pre-commit hooks | |
| continue-on-error: true | |
| uses: pre-commit/[email protected] # sync with https://github.com/Efficient-Large-Model/VILA-Internal/blob/main/.github/workflows/pre-commit.yaml | |
| with: | |
| extra_args: --all-files | |
| - name: Check if there are any changes | |
| id: verify_diff | |
| run: | | |
| git diff --quiet . || echo "changed=true" >> $GITHUB_OUTPUT | |
| - name: Commit files | |
| if: steps.verify_diff.outputs.changed == 'true' | |
| run: | | |
| git config --local user.email "[email protected]" | |
| git config --local user.name "GitHub Action" | |
| git add . | |
| git commit -m "[CI-Lint] Fix code style issues with pre-commit ${{ github.sha }}" -a | |
| git push | |
| - name: Remove label(s) after lint | |
| uses: actions-ecosystem/action-remove-labels@v1 | |
| with: | |
| labels: lint wanted | |