-
Notifications
You must be signed in to change notification settings - Fork 0
137 lines (120 loc) · 3.32 KB
/
pipelines.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
131
132
133
134
135
136
137
name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
branches: [ main ]
schedule:
- cron: '0 7 * * 1-5'
jobs:
validate_pyproject:
name: Validate pyproject.toml
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
python --version
python -m pip install --upgrade pip
python -m pip install validate-pyproject[all]
- name: Validate pyproject.toml
run: |
python -m validate_pyproject -vv pyproject.toml
lint:
name: Lint code base
needs: [validate_pyproject]
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python --version
python -m pip install --upgrade pip
python -m pip install \
pylint \
black \
pytest \
- name: Pylint
run: |
python -m pylint -v --rcfile=pyproject.toml .
- name: Black
run: |
python -m black -v --check --diff .
unit_tests:
name: Run unit tests
needs: [lint]
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies and project
run: |
python --version
python -m pip install --upgrade pip
python -m pip install \
pytest \
pytest-mock \
pytest-cov \
python -m pip install .
- name: Unit tests with coverage
run: |
export COVERAGE_PROCESS_START="$(pwd)/pyproject.toml"
pytest -vra --cov --cov-config=pyproject.toml tests/unit
unit_tests_self_run:
name: Run unit tests via pyproject_installer
needs: [lint]
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies and project
run: |
python --version
python -m pip install --upgrade pip
python -m pip install \
pytest \
pytest-mock \
python -m pip install .
- name: Unit tests with self run
run: |
python -m pyproject_installer -v build
python -m pyproject_installer -v run -- pytest -vra tests/unit
integration_tests:
name: Run integration tests
needs: [lint]
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies and project
run: |
python --version
python -m pip install --upgrade pip
python -m pip install pytest
python -m pip install .
- name: integration tests
run: |
pytest -vra tests/integration