-
Notifications
You must be signed in to change notification settings - Fork 2
130 lines (90 loc) · 2.51 KB
/
ci.yml
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: build
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: get repo
uses: actions/checkout@v3
- name: set up Python
uses: actions/setup-python@v4
- name: install dependencies
run: |
pip install flake8 black
- name: lint with flake8
run: |
flake8
- name: lint with black
run: |
black --check .
type-check:
needs: lint
runs-on: ubuntu-latest
steps:
- name: get repo
uses: actions/checkout@v3
- name: set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: install package
run: |
pip install -r requirements.txt
pip install mypy
- name: run mypy check
run: |
mypy src
unit-test:
needs: type-check
runs-on: ${{ matrix.os }}
env:
DISPLAY: ":99.0"
PYTEST_QT_API: ${{ matrix.qt }}
strategy:
fail-fast: false
matrix:
os : [ubuntu-latest, windows-latest, macos-latest]
python: ["3.7", "3.8", "3.9", "3.10", "3.11"]
qt: [PySide6, PyQt6]
steps:
- name: get repo
uses: actions/checkout@v3
- name: set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: set up environment for linux
uses: tlambert03/setup-qt-libs@v1
- name: install gstreamer dependencies
run: |
if [ "${{ matrix.os }}" == "ubuntu-latest" ]; then
sudo apt-get update -y
sudo apt-get install -y libunwind-dev
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
fi
shell: bash
- name: install qt
run: |
pip install ${{ matrix.qt }}
- name: install package
run: |
pip install pytest-xvfb
pip install .[test]
- run: pytest
doc:
needs: unit-test
runs-on: ubuntu-latest
steps:
- name: get repo
uses: actions/checkout@v3
- name: set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: install package
run: |
pip install .[doc]
- name: build document
run: |
cd doc
make html SPHINXOPTS="-W --keep-going"