Skip to content
This repository has been archived by the owner on Aug 21, 2024. It is now read-only.

tox

tox #1464

Workflow file for this run

name: tox
on:
create: # is used for publishing to PyPI and TestPyPI
tags: # any tag regardless of its name, no branches
- "**"
push: # only publishes pushes to the main branch to TestPyPI
branches: # any integration branch but not tag
- "master"
pull_request:
release:
types:
- published # It seems that you can publish directly without creating
- prereleased
schedule:
- cron: 1 0 * * * # Run daily at 0:01 UTC
jobs:
lint:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@master
with:
python-version: "3.x"
- name: run lint
run: |
python -m pip install -U tox
tox -e lint
packaging:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@master
with:
python-version: "3.x"
- name: run packaging
run: |
python -m pip install -U tox
tox -e packaging
test:
needs: lint
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
python: ["3.6", "3.7", "3.8", "3.9"]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@master
with:
python-version: ${{ matrix.python }}
- name: run test
run: |
python -m pip install tox
tox -e py$(printf "${{ matrix.python }}" | tr -d '.')
env:
COVERAGE_FILE: .coverage.${{ matrix.python }}
- name: upload artifacts
uses: actions/upload-artifact@v2
with:
name: coverage-results
path: .coverage.${{ matrix.python }}
test-devel:
needs: lint
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
python: ["3.6"]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@master
with:
python-version: ${{ matrix.python }}
- name: run test (devel)
run: |
python -m pip install tox
tox -e py$(printf "${{ matrix.python }}" | tr -d '.')-devel
# coverage:
# needs: test
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@v2
# - uses: actions/setup-python@master
# with:
# python-version: "3.x"
# - uses: actions/download-artifact@v2
# with:
# name: coverage-results
# - name: run coverage
# run: |
# python -m pip install tox codecov
# tox -e coverage
# codecov -X pycov -X gcov
# env:
# CODECOV_TOKEN: ${{ secrets.codecov_token }}
publish:
needs: test
if: startsWith(github.ref, 'refs/tags/') # Only release during tags
runs-on: ubuntu-20.04
env:
PY_COLORS: 1
TOXENV: packaging
steps:
- name: Switch to using Python 3.6 by default
uses: actions/setup-python@v2
with:
python-version: 3.6
- name: Install tox
run: python -m pip install --user tox
- name: Check out src from Git
uses: actions/checkout@v2
with:
# Get shallow Git history (default) for release events
# but have a complete clone for any other workflows.
# Both options fetch tags but since we're going to remove
# one from HEAD in non-create-tag workflows, we need full
# history for them.
fetch-depth: >-
${{
(
(
github.event_name == 'create' &&
github.event.ref_type == 'tag'
) ||
github.event_name == 'release'
) &&
1 || 0
}}
- name: Drop Git tags from HEAD for non-tag-create and non-release events
if: >-
(
github.event_name != 'create' ||
github.event.ref_type != 'tag'
) &&
github.event_name != 'release'
run: >-
git tag --points-at HEAD
|
xargs git tag --delete
- name: Build dists
run: python -m tox
- name: Publish to test.pypi.org
if: >-
(
github.event_name == 'push' &&
github.ref == format(
'refs/heads/{0}', github.event.repository.default_branch
)
) ||
(
github.event_name == 'create' &&
github.event.ref_type == 'tag'
)
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{ secrets.testpypi_password }}
repository_url: https://test.pypi.org/legacy/
- name: Publish to pypi.org
if: >- # "create" workflows run separately from "push" & "pull_request"
github.event_name == 'release'
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{ secrets.pypi_password }}