Merge pull request #143 from DanCardin/dc/uv #308
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] | |
pydantic-version: ["1.0", "2.0"] | |
# No need to matrix test pydantic versions. But the matrix syntax still | |
# keeps the file DRY. | |
exclude: | |
- python-version: "3.8" | |
pydantic-version: "1.0" | |
- python-version: "3.9" | |
pydantic-version: "1.0" | |
- python-version: "3.11" | |
pydantic-version: "1.0" | |
- python-version: "3.12" | |
pydantic-version: "1.0" | |
- python-version: "3.13" | |
pydantic-version: "1.0" | |
env: | |
UV_CACHE_DIR: /tmp/.uv-cache | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
allow-prereleases: true | |
- name: Set up uv | |
run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
- name: Restore uv cache | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.uv-cache | |
key: uv-${{ runner.os }}-${{ hashFiles('uv.lock') }} | |
restore-keys: | | |
uv-${{ runner.os }}-${{ hashFiles('uv.lock') }} | |
uv-${{ runner.os }} | |
- name: Install dependencies | |
run: make install | |
- name: Minimize uv cache | |
run: uv cache prune --ci | |
- name: Install pydantic matrix version | |
run: uv pip install 'pydantic~=${{ matrix.pydantic-version }}' | |
- name: Run Linters | |
run: make lint | |
if: ${{ !endsWith(matrix.python-version, '-dev') }} | |
- name: Run tests | |
run: make test | |
- name: Store test result artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
path: coverage.xml | |
- uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
name: python=${{ matrix.python-version }}-pydantic=${{matrix.pydantic-version}} | |
files: coverage.xml | |
finish: | |
needs: | |
- test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Join | |
run: echo Done |