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-actions
package in the GitHub Actions workflow before runningtox
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
andmypy
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
andpy37-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
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
Hashes for tox_gh_actions-1.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c491a6e73b13c72829b95e50d63060f920bd02e5e2ba3c5a79bfc312598f966 |
|
MD5 | 6d517fe2371a0d22e1e209bd98bf0d26 |
|
BLAKE2b-256 | 094de969d471d53a24a20c3cd5ac57da8436cdf0e089b7e1195c63cb5200a585 |