-
Notifications
You must be signed in to change notification settings - Fork 2
130 lines (115 loc) · 4.09 KB
/
regression.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: regression
on:
push:
paths:
- '**.py'
pull_request:
types: [opened, reopened]
jobs:
install_python:
strategy:
fail-fast: false
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10"]
os: [ubuntu-latest, windows-latest] #, macos-latest] removed macos to see if it runs faster. I'll put it back later
# Dont install 3.10 for ubuntu. This one is done in the other job, so we can start running pylint and flake faster
exclude:
- os: ubuntu-latest
python-version: '3.10'
runs-on: $
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- run: |
python -m pip install pylint pytest flake8 .[formulae]
echo "PYTHONPATH=$(pwd)" >> $GITHUB_ENV
install_python_2:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- run: |
python -m pip install pylint pytest flake8 .[formulae]
echo "PYTHONPATH=$(pwd)" >> $GITHUB_ENV
pylint: # Just lint with 3.10
runs-on: ubuntu-latest
needs: install_python_2
steps:
- name: Set up Python 3.10 / Ubuntu
uses: actions/setup-python@v4
with:
python-version: '3.10'
- run: |
pylint qas_editor --rcfile=$(git ls-files '.pylintrc') --output-format=text | tee ./pylint.log || pylint-exit $?
echo "PYLINT_SCORE=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' ./pylint.log)" >> $GITHUB_ENV
flake8: # Just lint with 3.10
runs-on: ubuntu-latest
needs: install_python_2
steps:
- name: Set up Python 3.10 / Ubuntu
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Lint with flake8
run: |
echo "FLAKE_ERRORS=$(flake8 qas_editor --count --exit-zero --statistics --output-file ./flake8.log)" >> $GITHUB_ENV
pytest:
needs: [install_python, install_python_2]
strategy:
fail-fast: false
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10"]
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: $
steps:
- name: Test with pytest
run: |
pytest ./test_lib | tee ./pytest.log
echo "PYTEST_MAX=$(sed -n 's/collected \([0-9]*\) items/\1/p' ./pytest.log)" >> $GITHUB_ENV
echo "PYTEST_SCORE=$(sed -n 's/^===.* \([0-9]*\) passed.*===/\1/p' ./pytest.log)" >> $GITHUB_ENV
badges:
# Not needed to run on parallell, plus may generate error while accessing gist, so lets avoid it
runs-on: ubuntu-latest
if: ${{ always() }}
needs: [pylint, flake8, pytest]
steps:
- name: Create Pylint Badge
uses: LucasWolfgang/dynamic-badges-action@master
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: 344598a4a0f7b92a7889d998e33417c4
filename: pylint_${{ matrix.python-version }}.json
label: Pylint
message: ${{ env.PYLINT_SCORE }} / 10.0 points
minColorRange: 6
maxColorRange: 10
valColorRange: ${{ env.PYLINT_SCORE }}
continue-on-error: true
- name: Create Flake8 Badge
uses: LucasWolfgang/dynamic-badges-action@master
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: 344598a4a0f7b92a7889d998e33417c4
filename: flake8_${{ matrix.python-version }}.json
label: Flake8
message: ${{ env.FLAKE_ERRORS }} errors
minColorRange: 0
maxColorRange: 50
valColorRange: ${{ env.FLAKE_ERRORS }}
invertColorRange: 1
continue-on-error: true
- name: Create Pytest Badge
uses: LucasWolfgang/dynamic-badges-action@master
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: 344598a4a0f7b92a7889d998e33417c4
filename: pytest_${{ matrix.python-version }}.json
label: Pytest
message: ${{ env.PYTEST_SCORE }} / ${{ env.PYTEST_MAX }} tests
minColorRange: 13
maxColorRange: ${{ env.PYTEST_MAX }}
valColorRange: ${{ env.PYTEST_SCORE }}