-
Notifications
You must be signed in to change notification settings - Fork 0
50 lines (48 loc) · 1.49 KB
/
pre-commit.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
name: Pre-commit
on:
push:
branches:
- main
- "releases/**"
pull_request:
branches:
- main
- "releases/**"
workflow_dispatch:
jobs:
pre-commit:
runs-on: ubuntu-latest
env:
CACHE_DIR: /opt/.cache
PRE_COMMIT_HOME: /opt/.cache/pre-commit
RUFF_CACHE_DIR: /opt/.cache/ruff
MYPY_CACHE_DIR: /opt/.cache/mypy
FORCE_COLOR: 1
UV_NO_SYNC: true
steps:
- uses: actions/checkout@v4
- name: Get uv version
id: uv-version
run: |
content=$(cat .github/workflows/uv-constraint.txt)
echo "version=${content#uv==}" >> $GITHUB_OUTPUT
- uses: astral-sh/setup-uv@v4
with:
version: ${{ steps.uv-version.outputs.version }}
enable-cache: true
cache-dependency-glob: uv.lock
cache-suffix: pre-commit
- name: Install dependencies
# This step may also install the Python version set in the `.python-version` file on the fly if not available
run: uv sync
- name: Set PY
id: set-py
run: echo "PY=$(python -VV | sha256sum | cut -d ' ' -f 1)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
with:
path: ${{ env.CACHE_DIR }}
key: pre-commit-${{ runner.os }}-python-${{ steps.set-py.outputs.PY }}-config-and-deps-${{ hashFiles('.pre-commit-config.yaml', 'uv.lock') }}
- name: Run pre-commit
env:
PRE_COMMIT_COLOR: always
run: uv run pre-commit run --all-files