name: build on: [push, pull_request] jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: tox_env: - "py35-pytestlatest" - "py36-pytestlatest" - "py37-pytestlatest" - "py38-pytestlatest" - "py39-pytestlatest" - "py38-pytestmaster" - "py38-psutil" - "linting" os: [ubuntu-latest, windows-latest] include: - tox_env: "py35-pytestlatest" python: "3.5" - tox_env: "py36-pytestlatest" python: "3.6" - tox_env: "py37-pytestlatest" python: "3.7" - tox_env: "py38-pytestlatest" python: "3.8" - tox_env: "py39-pytestlatest" python: "3.9" - tox_env: "py38-pytestmaster" python: "3.8" - tox_env: "py38-psutil" python: "3.8" - tox_env: "linting" python: "3.8" steps: - uses: actions/checkout@v1 - name: Set up Python uses: actions/setup-python@v1 with: python-version: ${{ matrix.python }} - name: Install tox run: | python -m pip install --upgrade pip pip install tox - name: Test run: | tox -e ${{ matrix.tox_env }} linting: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Set up Python uses: actions/setup-python@v1 with: python-version: "3.7" - name: Install tox run: | python -m pip install --upgrade pip pip install tox - name: Linting run: | tox -e linting deploy: if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') runs-on: ubuntu-latest needs: [build, linting] steps: - uses: actions/checkout@v1 - name: Set up Python uses: actions/setup-python@v1 with: python-version: "3.7" - name: Install wheel run: | python -m pip install --upgrade pip pip install wheel - name: Build package run: | python setup.py sdist bdist_wheel - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@master with: user: __token__ password: ${{ secrets.pypi_token }}