👷⚡️ Cache pre-commit hooks in CI workflow #315
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: Tests | |
| on: | |
| push: | |
| branches: [main, develop] | |
| pull_request: | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| COLUMNS: 200 | |
| # Many color libraries just need this variable to be set to any value. | |
| # Set it to 3 to support 8-bit color graphics (256 colors per channel) | |
| # for libraries that care about the value set. | |
| FORCE_COLOR: 3 | |
| jobs: | |
| pre-commit: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| persist-credentials: false | |
| - uses: pre-commit/[email protected] | |
| copier-template-tester: | |
| name: copier-template-tester (uv ${{ matrix.uv-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| uv-version: ["0.7.3", "latest"] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| persist-credentials: false | |
| - uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: ${{ matrix.uv-version }} | |
| - name: Use correct Python version in older uv version | |
| if: ${{ matrix.uv-version == '0.7.3' }} | |
| run: sed -i 's/14/13/g' ctt.toml copier.yml | |
| - name: Configure Git | |
| run: | | |
| git config --global user.email "${{ github.actor }}@users.noreply.github.com" | |
| git config --global user.name "${{ github.actor }}" | |
| - name: Cache pre-commit | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pre-commit | |
| key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml', 'project_name/.pre-commit-config.yaml.jinja') }} | |
| restore-keys: | | |
| pre-commit-${{ runner.os }}- | |
| - name: Run copier-template-tester | |
| run: uv run ctt |