summaryrefslogtreecommitdiff
path: root/.github/workflows/master.yml
blob: 296b4a2ee94f017ad27632c55fbe90a435f99500 (plain) (blame)
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
name: master

on:
  push:
    branches:
      - master
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  quality:
    runs-on: ubuntu-24.04
    steps:
      - name: Check out
        uses: actions/checkout@v4

      - uses: actions/cache@v4
        with:
          path: ~/.cache/pre-commit
          key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}

      - name: Set up the environment
        uses: ./.github/actions/setup-poetry-env

      - name: Run checks
        run: make check

  tox:
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        python-version: ["3.12", "3.13"]
      fail-fast: false
    steps:
      - name: Check out
        uses: actions/checkout@v4

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

      - name: Install Poetry
        uses: snok/install-poetry@v1

      - name: Install system dependencies for PySide6
        run: |
          sudo apt-get update
          sudo apt-get install -y \
            libegl1 \
            libgl1 \
            libxkbcommon-x11-0 \
            libxcb-xinerama0 \
            libxrandr2 \
            libxrender1 \
            libxi6 \
            libxcomposite1 \
            libxdamage1 \
            libxtst6

      - name: Load cached venv
        uses: actions/cache@v4
        with:
          path: .tox
          key: venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('poetry.lock') }}

      - name: Install tox
        run: |
          python -m pip install --upgrade pip
          python -m pip install tox tox-gh-actions

      - name: Test with tox
        env:
          QT_QPA_PLATFORM: offscreen
        run: tox

  check-docs:
    runs-on: ubuntu-24.04
    steps:
      - name: Check out
        uses: actions/checkout@v4

      - name: Set up the environment
        uses: ./.github/actions/setup-poetry-env

      - name: Check if documentation can be built
        run: poetry run mkdocs build -s