Seamless integration of tox into GitHub Actions
Project description
tox-gh-actions
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
-
Add configurations under
[gh-actions]section along with tox's configuration.- It will be
pyproject.toml,tox.ini, orsetup.cfg. See tox's documentation for more details.
- It will be
-
Install
tox-gh-actionspackage in the GitHub Actions workflow before runningtoxcommand.
Examples
Basic Example
The following configuration will create 4 jobs when running the workflow on GitHub Actions.
- On Python 2.7 job, tox runs
py27environment - On Python 3.6 job, tox runs
py36environment - On Python 3.7 job, tox runs
py37environment - On Python 3.8 job, tox runs
py38andmypyenvironments
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-django111environment - On Python 3.7 job, tox runs
py37-django111andpy37-django20environments
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbce2a435cab4619e5fe77ce08b941bf8f1569f67cc43ac26b0249b2c7b029f4
|
|
| MD5 |
2c563f55b9172ef6e2abf8fff9c36beb
|
|
| BLAKE2b-256 |
c0dbbba6f4cce6087c607d49bc72cd4e687e86e56264aa35d3ac56b9b4143d36
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c491a6e73b13c72829b95e50d63060f920bd02e5e2ba3c5a79bfc312598f966
|
|
| MD5 |
6d517fe2371a0d22e1e209bd98bf0d26
|
|
| BLAKE2b-256 |
094de969d471d53a24a20c3cd5ac57da8436cdf0e089b7e1195c63cb5200a585
|