summaryrefslogtreecommitdiff
path: root/.github/workflows/ci-tests.yml
blob: c8c660e7b82882b53ad71c17721b4bfba5890cf7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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:
                    - "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 3.8
              uses: actions/setup-python@v2
              with:
                  python-version: 3.8
                  architecture: x64

            - run: pip install tox
            - run: tox -e py38,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