Skip to content

Merge pull request #24 from tilery/feature/add-python-3.12 #38

Merge pull request #24 from tilery/feature/add-python-3.12

Merge pull request #24 from tilery/feature/add-python-3.12 #38

Workflow file for this run

name: CI
# On every pull request, but only on push to master
on:
push:
branches:
- master
tags:
- '*'
pull_request:
jobs:
tests:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- {name: Windows, python: '3.10', os: windows-latest}
- {name: Mac, python: '3.10', os: macos-latest}
- {name: 'Ubuntu', python: '3.10', os: ubuntu-latest}
- {name: '3.12', python: '3.12', os: ubuntu-latest}
- {name: '3.11', python: '3.11', os: ubuntu-latest}
- {name: '3.9', python: '3.9', os: ubuntu-latest}
- {name: '3.8', python: '3.8', os: ubuntu-latest}
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
git submodule update --init
python -m pip install -e .["test"]
- name: Run pre-commit
if: ${{ matrix.name == 'Ubuntu' }}
run: |
python -m pip install pre-commit
pre-commit run --all-files
- name: Run Tests
run: |
python -m pytest --cov vtzero --cov-report xml --cov-report term-missing
- name: Upload Results
if: ${{ matrix.name == 'Ubuntu' }}
uses: codecov/codecov-action@v1
with:
file: ./coverage.xml
flags: unittests
name: ${{ matrix.python }}
fail_ci_if_error: false
#######################################################################################
# Deploy
#######################################################################################
build_wheels:
needs: [tests]
if: startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release'
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v3
# Used to host cibuildwheel
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.11.1
- name: Install dependencies
run: |
git submodule update --init
- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_SKIP: 'pp*'
CIBW_ARCHS_MACOS: auto universal2
- uses: actions/upload-artifact@v3
with:
path: ./wheelhouse
build_sdist:
needs: [tests]
if: startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release'
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
name: Install Python
with:
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install numpy Cython
git submodule update --init
- name: Build sdist
run: python setup.py sdist
- uses: actions/upload-artifact@v3
with:
path: dist/*.tar.gz
upload_pypi:
needs: [build_wheels, build_sdist]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v2
with:
name: artifact
path: dist
- uses: pypa/gh-action-pypi-publish@master
with:
user: ${{ secrets.PYPI_USERNAME }}
password: ${{ secrets.PYPI_PASSWORD }}