summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yaml
blob: 7e55e6add2b05288fd2e70af4dbb91beabc8a367 (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
---

name: CI

on:  # yamllint disable-line rule:truthy
  push:
  pull_request:
    branches:
      - master

permissions:
  contents: read

jobs:
  lint:
    name: Linters
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up Python
        uses: actions/setup-python@v5
      - run:
          pip install flake8 flake8-import-order sphinx sphinx_rtd_theme
          rstcheck[sphinx] doc8
      - run: pip install .
      - run: flake8 .
      - run: doc8 $(git ls-files '*.rst')
      - run: rstcheck --ignore-directives automodule $(git ls-files '*.rst')
      - run: yamllint --strict $(git ls-files '*.yaml' '*.yml')
      - run: make -C docs html
      - name: Check for broken links in documentation
        run: make -C docs linkcheck

  test:
    name: Tests
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python-version:
          - '3.8'
          - '3.9'
          - '3.10'
          - '3.11'
          - '3.12'
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
      - name: Append GitHub Actions system path
        run: echo "$HOME/.local/bin" >> $GITHUB_PATH
      - run: pip install coverage
      - run: pip install .
      # https://github.com/AndreMiras/coveralls-python-action/issues/18
      - run: echo -e "[run]\nrelative_files = True" > .coveragerc
      - run: coverage run -m unittest discover
      - name: Coveralls
        uses: AndreMiras/coveralls-python-action@develop