Update CI #161
Workflow file for this run
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: tests | |
on: | |
push: | |
pull_request: | |
types: [opened, synchronize, reopened, edited] | |
jobs: | |
validate: | |
name: Validate | |
if: github.repository_owner == 'explosion' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Configure Python version | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.7" | |
- name: black | |
run: | | |
python -m pip install black -c requirements.txt | |
python -m black confection --check | |
- name: isort | |
run: | | |
python -m pip install isort -c requirements.txt | |
python -m isort confection --check | |
- name: flake8 | |
run: | | |
python -m pip install flake8 -c requirements.txt | |
python -m flake8 confection --count --select=E901,E999,F821,F822,F823,W605 --show-source --statistics | |
tests: | |
name: Test | |
needs: Validate | |
if: github.repository == 'explosion/confection' | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
python_version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] | |
include: | |
- os: windows-2019 | |
python_version: "3.6" | |
- os: ubuntu-20.04 | |
python_version: "3.6" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Configure Python version | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Build sdist | |
run: | | |
python -m pip install -U build pip setuptools | |
python -m pip install -U -r requirements.txt | |
python -m build --sdist | |
- name: Run mypy for Pydantic v2 | |
run: | | |
python -m mypy confection | |
if: matrix.python_version != '3.6' && matrix.python_version != '3.7' | |
- name: Run mypy for Pydantic v1.10 | |
run: | | |
python -m pip install -U pydantic==1.10.* | |
python -m mypy confection | |
if: matrix.python_version != '3.6' && matrix.python_version != '3.7' | |
- name: Delete source directory | |
run: rm -rf confection | |
shell: bash | |
- name: Uninstall all packages | |
run: | | |
python -m pip freeze > installed.txt | |
python -m pip uninstall -y -r installed.txt | |
- name: Install from sdist | |
run: | | |
SDIST=$(python -c "import os;print(os.listdir('./dist')[-1])" 2>&1) | |
python -m pip install dist/$SDIST | |
shell: bash | |
- name: Test import | |
run: python -c "import confection" -Werror | |
- name: Install test requirements with Pydantic v1 | |
run: | | |
python -m pip install -U -r requirements.txt | |
python -m pip install -U "pydantic<2.0" | |
- name: Run tests for Pydantic v1 | |
run: | | |
python -c "import pydantic; print(pydantic.VERSION)" | |
python -m pytest --pyargs confection -Werror | |
- name: Install test requirements with Pydantic v2 | |
run: | | |
python -m pip install -U -r requirements.txt | |
python -m pip install -U pydantic | |
- name: Run tests for Pydantic v2 | |
run: | | |
python -c "import pydantic; print(pydantic.VERSION)" | |
python -m pytest --pyargs confection -Werror | |
- name: Test for import conflicts with hypothesis | |
run: | | |
python -m pip install hypothesis | |
python -c "import confection; import hypothesis" |