@@ -2,24 +2,55 @@ name: Python CI
22
33on :
44 push :
5- branches : [ main ]
5+ branches : [main]
66 pull_request :
7- branches : [ main ]
7+ branches : [main]
88
9- jobs :
10- build :
9+ permissions :
10+ contents : read
1111
12+ jobs :
13+ test :
14+ name : Test (Python ${{ matrix.python-version }})
1215 runs-on : ubuntu-latest
13-
1416 strategy :
17+ fail-fast : false
1518 matrix :
16- python-version : ['3.10', '3.11', '3.12', '3.13']
17-
19+ python-version : ['3.10', '3.14']
20+ steps :
21+ - uses : actions/checkout@v4
22+ - uses : astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
23+ with :
24+ version : ' 0.11.25'
25+ python-version : ${{ matrix.python-version }}
26+ enable-cache : true
27+ - run : uv sync --locked
28+ - run : uv run --locked pytest --cov=listennotes --cov-report=term-missing
29+ integration :
30+ name : Integration (public mock API)
31+ runs-on : ubuntu-latest
32+ timeout-minutes : 5
33+ steps :
34+ - uses : actions/checkout@v4
35+ - uses : astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
36+ with :
37+ version : ' 0.11.25'
38+ python-version : ' 3.14'
39+ enable-cache : true
40+ - run : uv sync --locked
41+ - run : uv run --locked pytest --run-integration -m integration
42+ quality :
43+ name : Lint and package
44+ runs-on : ubuntu-latest
1845 steps :
19- - uses : actions/checkout@v4
20- - name : Use Python ${{ matrix.python-version }}
21- uses : actions/setup-python@v4
22- with :
23- python-version : ${{ matrix.python-version }}
24- - run : make
25- - run : make test
46+ - uses : actions/checkout@v4
47+ - uses : astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
48+ with :
49+ version : ' 0.11.25'
50+ python-version : ' 3.14'
51+ enable-cache : true
52+ - run : uv sync --locked
53+ - run : uv run --locked black --check listennotes tests
54+ - run : uv run --locked flake8 listennotes tests
55+ - run : uv build --no-sources
56+ - run : uv publish --dry-run --trusted-publishing never
0 commit comments