summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/python-tests.yml75
1 files changed, 75 insertions, 0 deletions
diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml
new file mode 100644
index 00000000..00250ff1
--- /dev/null
+++ b/.github/workflows/python-tests.yml
@@ -0,0 +1,75 @@
+name: Test suite
+
+on:
+ push:
+ pull_request:
+ schedule:
+ - cron: 1 0 * * * # Run daily at 0:01 UTC
+
+jobs:
+ tests:
+ name: 👷
+ runs-on: ${{ matrix.os }}
+ strategy:
+ # max-parallel: 5
+ matrix:
+ python-version:
+ - 3.7
+ - 3.6
+ - 3.5
+ - 2.7
+ os:
+ - ubuntu-18.04
+ - ubuntu-16.04
+ - macOS-10.14
+ - windows-2019
+ - windows-2016
+ env:
+ - TOXENV: python
+
+ steps:
+ - uses: actions/checkout@master
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ version: ${{ matrix.python-version }}
+ - name: Upgrade pip/setuptools/wheel
+ run: >-
+ python
+ -m pip install
+ --disable-pip-version-check
+ --upgrade
+ pip setuptools wheel
+ - name: Install tox
+ run: >-
+ python -m pip install --upgrade tox tox-venv
+ - name: Log installed dists
+ run: >-
+ python -m pip freeze --all
+ - name: Log env vars
+ run: >-
+ env
+ env: ${{ matrix.env }}
+
+ - name: Update egg_info based on setup.py in checkout
+ run: >-
+ python -m bootstrap
+ env: ${{ matrix.env }}
+ - name: Verify that there's no cached Python modules in sources
+ if: >-
+ ! startsWith(matrix.os, 'windows-')
+ run: >-
+ ! grep pyc setuptools.egg-info/SOURCES.txt
+
+ - name: 'Initialize tox envs: ${{ matrix.env.TOXENV }}'
+ run: |
+ python -m tox --parallel auto --notest
+ env: ${{ matrix.env }}
+ - name: Test with tox
+ run: |
+ ${{ startsWith(matrix.os, 'windows-') && 'setx NETWORK_REQUIRED ' || 'export NETWORK_REQUIRED=' }}1
+ python -m tox \
+ --parallel 0 \
+ -- \
+ --cov
+ env: ${{ matrix.env }}