summaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
blob: 0caecab83e34f063e0731fc912cc919723bccab0 (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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
name: CI

on: [push, pull_request]

jobs:
  test-linux:
    strategy:
      matrix:
        fail-fast: false
        python-version: [3.7, 3.8, 3.9]
        numpy: [null, "numpy>=1.17,<2.0.0"]
        uncertainties: [null, "uncertainties==3.0.1", "uncertainties>=3.0.1,<4.0.0"]
        extras: [null]
        include:
          - python-version: 3.7 # Minimal versions
            numpy: numpy==1.17.5
            extras: matplotlib==2.2.5
          - python-version: 3.8
            numpy: "numpy"
            uncertainties: "uncertainties"
            extras: "sparse xarray netCDF4 dask[complete] graphviz babel==2.8"
    runs-on: ubuntu-latest

    env:
      TEST_OPTS: "-rfsxEX -s --cov=pint --cov-config=.coveragerc"

    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 100

      - name: Get tags
        run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*

      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}

      - name: Get pip cache dir
        id: pip-cache
        run: echo "::set-output name=dir::$(pip cache dir)"

      - name: Setup caching
        uses: actions/cache@v2
        with:
          path: ${{ steps.pip-cache.outputs.dir }}
          key: pip-${{ matrix.python-version }}
          restore-keys: |
            pip-${{ matrix.python-version }}

      - name: Install numpy
        if: ${{ matrix.numpy != null }}
        run: pip install "${{matrix.numpy}}"
      
      - name: Install uncertainties
        if: ${{ matrix.uncertainties != null }}
        run: pip install "${{matrix.uncertainties}}"

      - name: Install extras
        if: ${{ matrix.extras != null }}
        run: pip install ${{matrix.extras}}

      - name: Install dependencies
        run: |
          sudo apt install -y graphviz
          pip install pytest pytest-cov pytest-subtests
          pip install .

      - name: Install pytest-mpl
        if: contains(matrix.extras, 'matplotlib')
        run: pip install pytest-mpl

      - name: Run Tests
        run: |
          pytest $TEST_OPTS

      - name: Coverage report
        run: coverage report -m

      - name: Coveralls Parallel
        env:
          COVERALLS_FLAG_NAME: ${{ matrix.test-number }}
          COVERALLS_PARALLEL: true
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          COVERALLS_SERVICE_NAME: github
        run: |
          pip install coveralls
          coveralls

  coveralls:
    needs: test-linux
    runs-on: ubuntu-latest
    steps:
    - uses: actions/setup-python@v2
      with:
        python-version: 3.x
    - name: Coveralls Finished
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        COVERALLS_SERVICE_NAME: github
      run: |
        pip install coveralls
        coveralls --finish