2222 default : ' false'
2323
2424env :
25- UV_SYSTEM_PYTHON : 1
25+ UV_NO_SYNC : true
2626
2727jobs :
2828 test :
2929 strategy :
3030 matrix :
3131 os : [ ubuntu-latest, windows-latest, macos-latest ]
3232 python-version : ["3.14"]
33- pydantic-version : ["v2"]
3433 include :
35- - python-version : " 3.8"
36- pydantic-version : " v1"
37- os : windows-latest
3834 - python-version : " 3.9"
39- pydantic-version : " v2"
4035 os : macos-latest
4136 - python-version : " 3.10"
42- pydantic-version : " v1"
4337 os : ubuntu-latest
4438 - python-version : " 3.11"
45- pydantic-version : " v2"
4639 os : windows-latest
4740 - python-version : " 3.12"
48- pydantic-version : " v1"
4941 os : macos-latest
5042 - python-version : " 3.13"
51- pydantic-version : " v1"
5243 os : ubuntu-latest
5344 - python-version : " 3.13"
54- pydantic-version : " v2"
5545 os : windows-latest
5646 fail-fast : false
5747 runs-on : ${{ matrix.os }}
48+ env :
49+ UV_PYTHON : ${{ matrix.python-version }}
5850 steps :
5951 - name : Dump GitHub context
6052 env :
@@ -68,34 +60,28 @@ jobs:
6860 - name : Setup uv
6961 uses : astral-sh/setup-uv@v7
7062 with :
71- version : " 0.4.15"
7263 enable-cache : true
7364 cache-dependency-glob : |
74- requirements**.txt
7565 pyproject.toml
66+ uv.lock
7667 # Allow debugging with tmate
7768 - name : Setup tmate session
7869 uses : mxschmitt/action-tmate@v3
7970 if : ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }}
8071 with :
8172 limit-access-to-actor : true
8273 - name : Install Dependencies
83- run : uv pip install -r requirements-tests.txt
84- - name : Install Pydantic v1
85- if : matrix.pydantic-version == 'v1'
86- run : uv pip install "pydantic<2.0.0"
87- - name : Lint
88- run : bash scripts/lint.sh
74+ run : uv sync --locked --no-dev --group tests --extra standard
8975 - run : mkdir coverage
9076 - name : Test
91- run : bash scripts/test.sh
77+ run : uv run bash scripts/test.sh
9278 env :
93- COVERAGE_FILE : coverage/.coverage.${{ runner.os }}-py${{ matrix.python-version }}-pydantic-${{ matrix.pydantic-version }}
94- CONTEXT : ${{ runner.os }}-py${{ matrix.python-version }}-pydantic-${{ matrix.pydantic-version }}
79+ COVERAGE_FILE : coverage/.coverage.${{ runner.os }}-py${{ matrix.python-version }}
80+ CONTEXT : ${{ runner.os }}-py${{ matrix.python-version }}
9581 - name : Store coverage files
96- uses : actions/upload-artifact@v5
82+ uses : actions/upload-artifact@v6
9783 with :
98- name : coverage-${{ runner.os }}-${{ matrix.python-version }}-pydantic-${{ matrix.pydantic -version }}
84+ name : coverage-${{ runner.os }}-${{ matrix.python-version }}
9985 path : coverage
10086 include-hidden-files : true
10187
@@ -110,32 +96,32 @@ jobs:
11096 - uses : actions/checkout@v6
11197 - uses : actions/setup-python@v6
11298 with :
113- python-version : ' 3.8 '
99+ python-version-file : " .python-version "
114100 - name : Setup uv
115101 uses : astral-sh/setup-uv@v7
116102 with :
117- version : " 0.4.15"
118103 enable-cache : true
119104 cache-dependency-glob : |
120- requirements**.txt
121105 pyproject.toml
106+ uv.lock
122107 - name : Get coverage files
123- uses : actions/download-artifact@v6
108+ uses : actions/download-artifact@v7
124109 with :
125110 pattern : coverage-*
126111 path : coverage
127112 merge-multiple : true
128- - run : uv pip install -r requirements-tests.txt
113+ - name : Install dependencies
114+ run : uv sync --locked --no-dev --group tests --extra standard
129115 - run : ls -la coverage
130- - run : coverage combine coverage
131- - run : coverage report
132- - run : coverage html --title "Coverage for ${{ github.sha }}"
116+ - run : uv run coverage combine coverage
117+ - run : uv run coverage html --title "Coverage for ${{ github.sha }}"
133118 - name : Store coverage HTML
134- uses : actions/upload-artifact@v5
119+ uses : actions/upload-artifact@v6
135120 with :
136121 name : coverage-html
137122 path : htmlcov
138123 include-hidden-files : true
124+ - run : uv run coverage report --fail-under=100
139125
140126 # https://github.com/marketplace/actions/alls-green#why
141127 check : # This job does nothing and is only used for the branch protection
0 commit comments