Skip to content

Workflow file for this run

name: Continuous Integration
on:
pull_request:
push:
env:
VALIDATE_PY_VERSION: "3.12"
jobs:
Test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python: ["3.8", "3.9", "3.10", "3.11", "3.12"]
runs-on: "${{ matrix.os }}"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Poetry
uses: abatilo/actions-poetry@v3
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: "${{ matrix.python }}"
cache: poetry
- name: Install Dependencies
run: make deps
- name: Run Lints
run: make lint
- name: Run Tests
env:
PY_COLORS: 1
run: make test
- name: Run Integration Tests
run: make it
- name: Build Docs
run: make docs
- name: Build Package
run: make build
- name: Upload Coverage
uses: codecov/codecov-action@v4
with:
name: "coverage-${{ runner.os }}-py${{ matrix.python }}"
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload Artifact
if: runner.os == 'Linux' && matrix.python == env.VALIDATE_PY_VERSION
uses: actions/upload-artifact@v4
with:
name: dist
path: dist
if-no-files-found: error
Validate:
needs: Test
runs-on: ubuntu-latest
steps:
- name: Download Artifact
uses: actions/download-artifact@v4
with:
name: dist
- name: Extract
run: |
ls -lah
unzip -t *.whl
unzip -p *.whl '*/METADATA'
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: "${{ env.VALIDATE_PY_VERSION }}"
- name: Pip Install
run: pip install *.whl