-
Notifications
You must be signed in to change notification settings - Fork 1
133 lines (108 loc) · 3.54 KB
/
python-app.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
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Tests
on:
push:
branches: [ master ]
paths-ignore:
- 'doc/**'
- 'gh-disabled-workflows/**'
- '*.md'
pull_request:
branches: [ master ]
paths-ignore:
- 'doc/**'
- 'gh-disabled-workflows/**'
- '*.md'
jobs:
linux_and_coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install Workflow dependencies
run: |
python -m pip install --upgrade pip
pip install wheel
pip install flake8 flake8-import-order pytest coverage
- name: Install project dependencies
run: |
pip install .[test]
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: graphviz for visualization test
run: |
sudo apt-get update && sudo apt-get install -yq graphviz
- name: Test with coverage & pytest
run: |
coverage run --source=tdvisu -m pytest .
coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
flags: unittests
other_os_tests:
strategy:
matrix:
os: [macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install Workflow dependencies
run: |
python -m pip install --upgrade pip
pip install wheel
- name: Install graphviz for visualization test
if: ${{ runner.os == 'macOS' }}
uses: ts-graphviz/setup-graphviz@v2
with:
macos-skip-brew-update: 'true' # default false
- name: Setup Conda
if: ${{ runner.os == 'Windows' }}
uses: s-weigand/setup-conda@v1
with:
# Whether to activate the conda base env (Default: 'true')
activate-conda: true
# Python version which should be installed with conda (default: 'Default')
python-version: 3.8
- name: Install graphviz via conda
if: ${{ runner.os == 'Windows' }}
run: |
conda install -c anaconda graphviz
- name: add graphviz PATH
if: ${{ runner.os == 'Windows' }}
run: |
# should give base conda python
$python=Get-Command python
$pypath=Split-Path $python.Source -Parent
# Add to PATH, we know pypath is on it
$dot=[IO.Path]::Combine($pypath, 'Library', 'bin', 'graphviz')
echo $dot | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
shell: powershell
- name: register plugins for graphviz
if: ${{ runner.os == 'Windows' }}
run: |
# execute dot
dot -V
dot -c
- name: Install project dependencies
run: |
pip install .[test]
- name: Test with pytest
run: |
# Tests reside in folder 'test'
pytest ./test