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]
...
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.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 234df278048b9ba51835ba4c18fba922377e9d722b452b65990f6d49428522d6 |
|
MD5 | b2bf3b5538b99e945de6d7e00c61c475 |
|
BLAKE2b-256 | f031d929850f4bad0eae5effd959bfe800b812bdbc8b67205170456ed25a5bb3 |