-
Notifications
You must be signed in to change notification settings - Fork 15
71 lines (60 loc) · 2.17 KB
/
check-python-code.yaml
File metadata and controls
71 lines (60 loc) · 2.17 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
name: Check Python package code
on:
pull_request:
paths:
- 'packages/**'
- 'pyproject.toml'
- 'uv.lock'
push:
branches: [main, dev]
paths:
- 'packages/**'
- 'pyproject.toml'
- 'uv.lock'
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
check:
name: Check (${{ matrix.resolution }}, py${{ matrix.python }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Default resolution exercises the committed lock against every
# supported Python minor version. The lowest-direct cell pins each
# direct dependency to its declared floor (see UV_RESOLUTION below)
# and runs only on the Python floor.
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
resolution: [default]
include:
- python: "3.10"
resolution: lowest-direct
permissions:
contents: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
with:
version: "latest"
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python }}
# UV_RESOLUTION=lowest-direct makes `uv sync` re-resolve every direct
# dependency to the lowest version permitted by pyproject.toml. This
# exercises the declared floor (e.g. pydantic==2.12.0) instead of
# whatever the committed lock happens to point at. Failures here mean
# a direct dep's minimum needs to be bumped. Set via GITHUB_ENV only
# in the relevant cell so default cells run with no UV_RESOLUTION at
# all -- otherwise an empty value is rejected by uv.
- name: Configure resolution
if: matrix.resolution == 'lowest-direct'
run: echo "UV_RESOLUTION=lowest-direct" >> "$GITHUB_ENV"
- name: Run make check
run: make check