summaryrefslogtreecommitdiff
path: root/.github/workflows/ci-tests.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci-tests.yml')
-rw-r--r--.github/workflows/ci-tests.yml95
1 files changed, 95 insertions, 0 deletions
diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml
new file mode 100644
index 0000000..54b229e
--- /dev/null
+++ b/.github/workflows/ci-tests.yml
@@ -0,0 +1,95 @@
+name: Build and test
+
+on:
+ # Only on pushes to master or one of the release branches we build on push
+ push:
+ branches:
+ - master
+ - "[0-9].[0-9]+-branch"
+ tags:
+ # Build pull requests
+ pull_request:
+
+jobs:
+ test:
+ strategy:
+ matrix:
+ py:
+ - "2.7"
+ - "3.5"
+ - "3.6"
+ - "3.7"
+ - "3.8"
+ - "pypy3"
+ os:
+ - "ubuntu-latest"
+ - "windows-latest"
+ - "macos-latest"
+ architecture:
+ - x64
+ - x86
+
+ exclude:
+ # Linux and macOS don't have x86 python
+ - os: "ubuntu-latest"
+ architecture: x86
+ - os: "macos-latest"
+ architecture: x86
+ # Building on PyPy3 on Windows is broken
+ - os: "windows-latest"
+ py: "pypy3"
+
+ name: "Python: ${{ matrix.py }}-${{ matrix.architecture }} on ${{ matrix.os }}"
+ runs-on: ${{ matrix.os }}
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup python
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.py }}
+ architecture: ${{ matrix.architecture }}
+ - run: pip install tox
+ - name: Running tox
+ run: tox -e py
+ coverage:
+ runs-on: ubuntu-latest
+ name: Validate coverage
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup python 2.7
+ uses: actions/setup-python@v2
+ with:
+ python-version: 2.7
+ architecture: x64
+ - name: Setup python 3.8
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+ architecture: x64
+
+ - run: pip install tox
+ - run: tox -e py38,py27,coverage
+ docs:
+ runs-on: ubuntu-latest
+ name: Build the documentation
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+ architecture: x64
+ - run: pip install tox
+ - run: tox -e docs
+ lint:
+ runs-on: ubuntu-latest
+ name: Lint the package
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+ architecture: x64
+ - run: pip install tox
+ - run: tox -e lint