-
Notifications
You must be signed in to change notification settings - Fork 165
137 lines (121 loc) · 3.47 KB
/
push.yaml
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: Test Suite
on:
push:
branches:
- '**'
jobs:
linter:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name:
run: |
#!/bin/bash
set -euxo pipefail
python3 -m pip install -q flake8
python3 -m flake8 \
--ignore=E731,W503 \
--filename=*.py \
--exclude=__init__.py \
--show-source \
--statistics \
--max-line-length=120 \
src/ tests/
test-packaging:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Build package
run: |
#!/bin/bash
set -euxo pipefail
python3 -m pip install --upgrade pip
python3 -m pip install build twine
python3 -m build
python3 -m twine check dist/*
test-suite:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ["3.8", "3.9", '3.10', "3.11"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Set up venv
run: |
#!/bin/bash
set -euxo pipefail
python3 -m venv env
source env/bin/activate
python3 -m pip install --upgrade pip setuptools
echo "Python path: $(which python3)"
echo "Python version: $(python3 --version)"
echo "pip version: $(python3 -m pip --version)"
- name: Install dependencies
run: |
#!/bin/bash
set -euxo pipefail
source env/bin/activate
python3 -m pip install -e .[devel]
- name: Pip check
run: |
#!/bin/bash
set -euxo pipefail
source env/bin/activate
python3 -m pip check
- name: Type check
run: |
#!/bin/bash
set -euxo pipefail
source env/bin/activate
python3 -m mypy src tests --config mypy.ini
- name: Test with pytest
run: |
#!/bin/bash
set -euxo pipefail
source env/bin/activate
python3 -m pytest --cov-fail-under=93 --cov=fklearn tests/
build-docs:
needs: [linter, test-suite]
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Set up venv
run: |
#!/bin/bash
set -euxo pipefail
python3 -m venv env
source env/bin/activate
python3 -m pip install --upgrade pip setuptools
echo "Python path: $(which python3)"
echo "Python version: $(python3 --version)"
echo "pip version: $(python3 -m pip --version)"
- name: Install dependencies
run: |
#!/bin/bash
set -euxo pipefail
source env/bin/activate
python3 -m pip install -e .[devel]
python3 -m pip install -r docs/requirements.txt
- name: Generate docs
run: |
#!/bin/bash
set -euxo pipefail
source env/bin/activate
sudo apt-get install pandoc
cd docs/ && make html