1818 # cron every week on monday
1919 - cron : " 0 0 * * 1"
2020
21+ env :
22+ UV_SYSTEM_PYTHON : 1
23+
2124jobs :
2225 test :
2326 runs-on : ubuntu-latest
@@ -34,33 +37,34 @@ jobs:
3437 - pydantic-v1
3538 - pydantic-v2
3639 fail-fast : false
37-
3840 steps :
3941 - uses : actions/checkout@v4
4042 - name : Set up Python
4143 uses : actions/setup-python@v5
4244 with :
4345 python-version : ${{ matrix.python-version }}
46+ - name : Setup uv
47+ uses : astral-sh/setup-uv@v3
48+ with :
49+ version : " 0.4.15"
50+ enable-cache : true
51+ cache-dependency-glob : |
52+ requirements**.txt
53+ pyproject.toml
4454 # Allow debugging with tmate
4555 - name : Setup tmate session
4656 uses : mxschmitt/action-tmate@v3
4757 if : ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }}
4858 with :
4959 limit-access-to-actor : true
50- - uses : actions/cache@v4
51- id : cache
52- with :
53- path : ${{ env.pythonLocation }}
54- key : ${{ runner.os }}-python-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml', 'requirements-tests.txt') }}-v01
5560 - name : Install Dependencies
56- if : steps.cache.outputs.cache-hit != 'true'
57- run : pip install -r requirements-tests.txt
61+ run : uv pip install -r requirements-tests.txt
5862 - name : Install Pydantic v1
5963 if : matrix.pydantic-version == 'pydantic-v1'
60- run : pip install --upgrade "pydantic>=1.10.0,<2.0.0"
64+ run : uv pip install --upgrade "pydantic>=1.10.0,<2.0.0"
6165 - name : Install Pydantic v2
6266 if : matrix.pydantic-version == 'pydantic-v2'
63- run : pip install --upgrade "pydantic>=2.0.2,<3.0.0" "typing-extensions==4.6.1"
67+ run : uv pip install --upgrade "pydantic>=2.0.2,<3.0.0" "typing-extensions==4.6.1"
6468 - name : Lint
6569 # Do not run on Python 3.7 as mypy behaves differently
6670 if : matrix.python-version != '3.7' && matrix.pydantic-version == 'pydantic-v2'
@@ -82,28 +86,31 @@ jobs:
8286 needs :
8387 - test
8488 runs-on : ubuntu-latest
85-
8689 steps :
8790 - uses : actions/checkout@v4
88-
8991 - uses : actions/setup-python@v5
9092 with :
9193 python-version : ' 3.12'
92-
94+ - name : Setup uv
95+ uses : astral-sh/setup-uv@v3
96+ with :
97+ version : " 0.4.15"
98+ enable-cache : true
99+ cache-dependency-glob : |
100+ requirements**.txt
101+ pyproject.toml
93102 - name : Get coverage files
94103 uses : actions/download-artifact@v4
95104 with :
96105 pattern : coverage-*
97106 path : coverage
98107 merge-multiple : true
99-
100- - run : pip install coverage[toml]
101-
108+ - name : Install Dependencies
109+ run : uv pip install -r requirements-tests.txt
102110 - run : ls -la coverage
103111 - run : coverage combine coverage
104112 - run : coverage report
105113 - run : coverage html --title "Coverage for ${{ github.sha }}"
106-
107114 - name : Store coverage HTML
108115 uses : actions/upload-artifact@v4
109116 with :
0 commit comments