name: Check pre-commit rules on: pull_request: types: [opened, reopened, synchronize] permissions: contents: read jobs: pre_commit_check: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: ref: ${{ github.base_ref }} fetch-depth: 20 - name: Fetch head and base refs # This is necessary for pre-commit to check the changes in the PR branch (and to set origin/HEAD and HEAD refs) run: | git fetch origin ${{ github.event.pull_request.head.sha }}:pr_ref git checkout pr_ref git remote set-head origin --auto git merge-base origin/HEAD HEAD || ( echo "Your PR is far behind origin/HEAD, please rebase" && exit 1 ) - name: Set up Python environment uses: actions/setup-python@master with: python-version: v3.7 - name: Install python packages run: | pip install pre-commit pre-commit install-hooks - name: Run pre-commit and check for any changes run: | echo "Commits being checked:" git log --oneline --no-decorate origin/HEAD..HEAD echo "" if ! pre-commit run --from-ref origin/HEAD --to-ref HEAD --hook-stage manual --show-diff-on-failure ; then echo "" echo "::notice::It looks like the commits in this PR have been made without having pre-commit hooks installed." echo "::notice::Please see https://github.com/espressif/esp-protocols/CONTRIBUTING.md for instructions." echo "" exit 1 fi