Bump pre-commit from 4.5.0 to 4.5.1 #2074
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - dev | |
| pull_request: ~ | |
| env: | |
| CACHE_VERSION: 1 | |
| DEFAULT_PYTHON: "3.10" | |
| LIB_FOLDER: python_typing_update | |
| PRE_COMMIT_CACHE: ~/.cache/pre-commit | |
| jobs: | |
| prepare-base: | |
| name: Prepare base dependencies | |
| runs-on: &runs-on-ubuntu ubuntu-latest | |
| outputs: | |
| python-key: ${{ steps.generate-python-key.outputs.key }} | |
| pre-commit-key: ${{ steps.generate-pre-commit-key.outputs.key }} | |
| steps: | |
| - &checkout | |
| name: Check out code from GitHub | |
| uses: actions/[email protected] | |
| - &setup-python-default | |
| name: Set up Python ${{ env.DEFAULT_PYTHON }} | |
| id: python | |
| uses: &actions-setup-python actions/[email protected] | |
| with: | |
| python-version: ${{ env.DEFAULT_PYTHON }} | |
| check-latest: true | |
| - name: Generate partial Python venv restore key | |
| id: generate-python-key | |
| run: >- | |
| echo "key=venv-base-${{ env.CACHE_VERSION }}-${{ | |
| hashFiles('requirements.txt', 'requirements_test.txt', | |
| 'requirements_test_pre_commit.txt') }}" >> $GITHUB_OUTPUT | |
| - name: Restore Python virtual environment | |
| id: cache-venv | |
| uses: &actions-cache actions/[email protected] | |
| with: | |
| path: venv | |
| key: >- | |
| ${{ runner.os }}-${{ runner.arch }}-${{ | |
| steps.python.outputs.python-version }}-${{ | |
| steps.generate-python-key.outputs.key }} | |
| - name: Create Python virtual environment | |
| if: steps.cache-venv.outputs.cache-hit != 'true' | |
| run: | | |
| python -m venv venv | |
| . venv/bin/activate | |
| python -m pip install -U pip | |
| pip install -U -r requirements.txt -r requirements_test.txt | |
| pip install . | |
| - name: Generate pre-commit restore key | |
| id: generate-pre-commit-key | |
| run: >- | |
| echo "key=pre-commit-${{ env.CACHE_VERSION }}-${{ | |
| hashFiles('.pre-commit-config.yaml') }}" >> $GITHUB_OUTPUT | |
| - name: Restore pre-commit environment | |
| id: cache-precommit | |
| uses: *actions-cache | |
| with: | |
| path: ${{ env.PRE_COMMIT_CACHE }} | |
| key: >- | |
| ${{ runner.os }}-${{ runner.arch }}-${{ | |
| steps.python.outputs.python-version }}-${{ | |
| steps.generate-pre-commit-key.outputs.key }} | |
| - name: Install pre-commit dependencies | |
| if: steps.cache-precommit.outputs.cache-hit != 'true' | |
| run: | | |
| . venv/bin/activate | |
| pre-commit install --install-hooks | |
| - name: Prepare cleanup-cache artifact | |
| run: | | |
| ref="${{ github.ref }}" | |
| echo "ref: $ref" | |
| echo "$ref" >> cleanup_cache | |
| - name: Upload cleanup-cache artifact | |
| uses: actions/[email protected] | |
| with: | |
| name: cleanup_cache | |
| path: cleanup_cache | |
| formatting: | |
| name: Run pre-commit checks | |
| runs-on: *runs-on-ubuntu | |
| needs: &needs-base [prepare-base] | |
| steps: | |
| - *checkout | |
| - *setup-python-default | |
| - &cache-restore-python-base | |
| name: Restore Python virtual environment | |
| id: cache-venv | |
| uses: &actions-cache-restore actions/cache/[email protected] | |
| with: | |
| fail-on-cache-miss: true | |
| path: venv | |
| key: ${{ runner.os }}-${{ runner.arch }}-${{ | |
| steps.python.outputs.python-version }}-${{ | |
| needs.prepare-base.outputs.python-key }} | |
| - name: Restore pre-commit environment | |
| id: cache-precommit | |
| uses: *actions-cache-restore | |
| with: | |
| fail-on-cache-miss: true | |
| path: ${{ env.PRE_COMMIT_CACHE }} | |
| key: ${{ runner.os }}-${{ runner.arch }}-${{ | |
| steps.python.outputs.python-version }}-${{ | |
| needs.prepare-base.outputs.pre-commit-key }} | |
| - name: Run formatting check | |
| run: | | |
| . venv/bin/activate | |
| pre-commit run --all-files | |
| pylint: | |
| name: Check pylint | |
| runs-on: *runs-on-ubuntu | |
| needs: *needs-base | |
| steps: | |
| - *checkout | |
| - *setup-python-default | |
| - *cache-restore-python-base | |
| - name: Run pylint | |
| run: | | |
| . venv/bin/activate | |
| pylint ${{ env.LIB_FOLDER }} tests | |
| mypy: | |
| name: Check mypy | |
| runs-on: *runs-on-ubuntu | |
| needs: *needs-base | |
| steps: | |
| - *checkout | |
| - *setup-python-default | |
| - *cache-restore-python-base | |
| - name: Run mypy | |
| run: | | |
| . venv/bin/activate | |
| mypy ${{ env.LIB_FOLDER }} tests | |
| pytest-linux: | |
| name: Run tests Python ${{ matrix.python-version }} (Linux) | |
| runs-on: *runs-on-ubuntu | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| outputs: | |
| python-key: ${{ steps.generate-python-key.outputs.key }} | |
| steps: | |
| - *checkout | |
| - name: Set up Python ${{ matrix.python-version }} | |
| id: python | |
| uses: *actions-setup-python | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| check-latest: true | |
| - name: Generate partial Python venv restore key | |
| id: generate-python-key | |
| run: >- | |
| echo "key=venv-${{ env.CACHE_VERSION }}-${{ | |
| hashFiles('requirements.txt', 'requirements_test.txt', | |
| 'requirements_test_pre_commit.txt') }}" >> $GITHUB_OUTPUT | |
| - name: Restore Python virtual environment | |
| id: cache-venv | |
| uses: *actions-cache | |
| with: | |
| path: venv | |
| key: >- | |
| ${{ runner.os }}-${{ runner.arch }}-${{ | |
| steps.python.outputs.python-version }}-${{ | |
| steps.generate-python-key.outputs.key }} | |
| - name: Create Python virtual environment | |
| if: steps.cache-venv.outputs.cache-hit != 'true' | |
| run: | | |
| python -m venv venv | |
| . venv/bin/activate | |
| python -m pip install -U pip | |
| pip install -U -r requirements.txt -r requirements_test.txt | |
| pip install . | |
| - name: Run pytest | |
| run: | | |
| . venv/bin/activate | |
| pytest tests/ |