Skip to main content

Seamless integration of tox into GitHub Actions

Project description

tox-gh-actions

PyPI version PyPI Supported Python Versions GitHub license GitHub Actions (Tests)

tox-gh-actions is a tox plugin which helps running tox on GitHub Actions with multiple different Python versions. This project is inspired by tox-travis.

Usage

  1. Add configurations under [gh-actions] section along with tox's configuration.

  2. Install tox-gh-actions package in the GitHub Actions workflow before running tox command.

Examples

Basic Example

The following configuration will create 4 jobs when running the workflow on GitHub Actions.

  • On Python 2.7 job, tox runs py27 environment
  • On Python 3.6 job, tox runs py36 environment
  • On Python 3.7 job, tox runs py37 environment
  • On Python 3.8 job, tox runs py38 and mypy environments

tox-gh-actions Configuration

Add [gh-actions] section to the same file as tox's cofiguration.

If you're using tox.ini:

[tox]
envlist = py27, py36, py37, py38, mypy

[gh-actions]
python =
    2.7: py27
    3.6: py36
    3.7: py37
    3.8: py38, mypy

[testenv]
...

If you're using setup.cfg:

[tox:tox]
envlist = py27, py36, py37, py38, mypy

[gh-actions]
python =
    2.7: py27
    3.6: py36
    3.7: py37
    3.8: py38, mypy

[testenv]
...

If you're using pyproject.toml:

[tool.tox]
legacy_tox_ini = """
[tox]
envlist = py27, py36, py37, py38, mypy

[gh-actions]
python =
    2.7: py27
    3.6: py36
    3.7: py37
    3.8: py38, mypy

[testenv]
"""

Workflow Configuration

.github/workflows/<workflow>.yml:

name: Python package

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      max-parallel: 4
      matrix:
        python-version: [2.7, 3.6, 3.7, 3.8]

    steps:
    - uses: actions/checkout@v1
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install tox tox-gh-actions
    - name: Test with tox
      run: tox

Advanced Example

The following configuration will create 2 jobs when running the workflow on GitHub Actions.

  • On Python 2.7 job, tox runs py27-django111 environment
  • On Python 3.7 job, tox runs py37-django111 and py37-django20 environments

tox.ini:

[tox]
envlist = py27-django{111}, py37-django{111,20}

[gh-actions]
python =
    2.7: py27
    3.7: py37

[testenv]
...

PyPy is also supported in the python configuration key.

tox.ini:

[tox]
envlist = py27, py38, pypy2, pypy3

[gh-actions]
python =
    2.7: py27
    3.8: py38, mypy
    pypy2: pypy2
    pypy3: pypy3

[testenv]
...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tox-gh-actions-1.1.0.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tox_gh_actions-1.1.0-py2.py3-none-any.whl (6.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file tox-gh-actions-1.1.0.tar.gz.

File metadata

  • Download URL: tox-gh-actions-1.1.0.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1

File hashes

Hashes for tox-gh-actions-1.1.0.tar.gz
Algorithm Hash digest
SHA256 fbce2a435cab4619e5fe77ce08b941bf8f1569f67cc43ac26b0249b2c7b029f4
MD5 2c563f55b9172ef6e2abf8fff9c36beb
BLAKE2b-256 c0dbbba6f4cce6087c607d49bc72cd4e687e86e56264aa35d3ac56b9b4143d36

See more details on using hashes here.

File details

Details for the file tox_gh_actions-1.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: tox_gh_actions-1.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1

File hashes

Hashes for tox_gh_actions-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1c491a6e73b13c72829b95e50d63060f920bd02e5e2ba3c5a79bfc312598f966
MD5 6d517fe2371a0d22e1e209bd98bf0d26
BLAKE2b-256 094de969d471d53a24a20c3cd5ac57da8436cdf0e089b7e1195c63cb5200a585

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page