mirror of
https://github.com/kennethreitz/maya.git
synced 2026-06-05 06:46:14 +00:00
80 lines
2.2 KiB
YAML
80 lines
2.2 KiB
YAML
name: Continuous Integration and Deployment
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"]
|
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v4.2.0
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Setup build and test environment
|
|
run: |
|
|
python -m pip install --upgrade pip setuptools wheel
|
|
- name: Build Python Package
|
|
run: |
|
|
python -m pip install ".[tests]"
|
|
- name: Lint with flake8
|
|
run: |
|
|
pip install flake8
|
|
flake8 --show-source src/ tests/
|
|
- name: Check Manifest
|
|
run: |
|
|
pip install check-manifest
|
|
check-manifest
|
|
- name: Test with pytest
|
|
run: |
|
|
coverage run --parallel -m pytest
|
|
- name: Report code coverage
|
|
run: |
|
|
coverage combine
|
|
coverage report
|
|
coverage xml
|
|
|
|
docs:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Set up Python 3.7
|
|
uses: actions/setup-python@v4.2.0
|
|
with:
|
|
python-version: 3.7
|
|
- name: Setup docs environment
|
|
run: |
|
|
python -m pip install ".[docs]"
|
|
- name: Build documentation with sphinx
|
|
run: |
|
|
sphinx-build -W -b html -d doctrees docs/source docs/_build/html
|
|
|
|
publish:
|
|
needs: [build, docs]
|
|
runs-on: ubuntu-latest
|
|
|
|
if: startsWith(github.event.ref, 'refs/tags') && github.ref == 'refs/heads/master'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Set up Python 3.7
|
|
uses: actions/setup-python@v4.2.0
|
|
with:
|
|
python-version: 3.7
|
|
- name: Build Package
|
|
run: |
|
|
python -m pip install --upgrade pip setuptools wheel
|
|
python setup.py sdist bdist_wheel --universal
|
|
- name: Publish Package on PyPI
|
|
uses: pypa/gh-action-pypi-publish@master
|
|
with:
|
|
user: __token__
|
|
password: ${{ secrets.pypi_token }}
|