diff --git a/.github/actions/pre-commit/action.yml b/.github/actions/pre-commit/action.yml new file mode 100644 index 0000000..b2c7e3c --- /dev/null +++ b/.github/actions/pre-commit/action.yml @@ -0,0 +1,22 @@ +name: run pre-commit checks +description: run all pre-commit managed checks +inputs: + pre-commit-home: + description: cache dir to use + required: true + default: ${{ github.workspace }}/.pre-commit-cache +runs: + using: "composite" + steps: + - id: python-interpreter-hash + shell: bash + run: echo "HASH=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_OUTPUT + - uses: actions/cache@v4 + with: + path: ${{ inputs.pre-commit-home }} + key: pre-commit|${{ steps.python-interpreter-hash.outputs.HASH }}|${{ hashFiles('.pre-commit-config.yaml') }} + - name: Run commit checks + shell: bash + env: + PRE_COMMIT_HOME: ${{ inputs.pre-commit-home }} + run: poetry run pre-commit run -a diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 78944f1..1abc793 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -5,12 +5,19 @@ on: branches: ["main"] jobs: - check: + lint: runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - run: pipx install pre-commit + - name: Run commit checks + uses: ./.github/actions/pre-commit + test: + runs-on: ubuntu-latest strategy: matrix: - python-version: [ '3.10', '3.11', '3.12', 'pypy3.10' ] + python-version: ["3.10", "3.11", "3.12", "pypy3.10"] steps: - uses: actions/checkout@v4 @@ -21,7 +28,5 @@ jobs: cache: poetry - name: Install dependencies run: poetry install --with=dev - - name: Run commit checks - run: poetry run pre-commit run -a - name: Run tests run: ./scripts/test