forked from microsoft/responsible-ai-toolbox
-
Notifications
You must be signed in to change notification settings - Fork 1
135 lines (119 loc) · 4.49 KB
/
CI-rai_core_flask-pytest.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
name: CI rai_core_flask
on:
push:
branches: [main]
pull_request:
branches: [main]
paths:
- "rai_core_flask/**"
- ".github/workflows/CI-rai_core_flask-pytest.yml"
jobs:
ci-rai-core-flask:
strategy:
# keep running remaining matrix jobs even if one fails
# to avoid having to rerun all jobs several times
fail-fast: false
matrix:
operatingSystem:
[ubuntu-20.04, ubuntu-latest, macos-latest, windows-latest]
pythonVersion: ["3.6", "3.7", "3.8", "3.9", "3.10"]
exclude:
- operatingSystem: macos-latest
pythonVersion: "3.9"
- operatingSystem: ubuntu-20.04
pythonVersion: "3.7"
- operatingSystem: ubuntu-20.04
pythonVersion: "3.8"
- operatingSystem: ubuntu-20.04
pythonVersion: "3.9"
- operatingSystem: ubuntu-20.04
pythonVersion: "3.10"
- operatingSystem: ubuntu-latest
pythonVersion: "3.6"
- operatingSystem: ubuntu-latest
pythonVersion: "3.9"
- operatingSystem: windows-latest
pythonVersion: "3.8"
runs-on: ${{ matrix.operatingSystem }}
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.pythonVersion }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.pythonVersion }}
- if: ${{ matrix.pythonVersion == '3.6' || matrix.pythonVersion == '3.7' }}
name: Setup tools for python lt 3.8
run: |
python -m pip install --upgrade "pip<=23.1.2"
pip install --upgrade setuptools
pip install --upgrade "pip-tools<=6.13.0"
- if: ${{ matrix.pythonVersion == '3.8' || matrix.pythonVersion == '3.9' || matrix.pythonVersion == '3.10' }}
name: Setup tools for python gte 3.8
run: |
python -m pip install --upgrade pip
pip install --upgrade setuptools
pip install --upgrade "pip-tools<=7.1.0"
- name: Pip compile
run: |
pip-compile requirements-dev.txt -o requirements-dev-comp.txt
cat requirements-dev-comp.txt
working-directory: rai_core_flask
- name: Upload requirements
uses: actions/upload-artifact@v3
with:
name: requirements-dev-comp.txt
path: rai_core_flask/requirements-dev-comp.txt
- name: Install dependencies
run: |
pip-sync requirements-dev-comp.txt
working-directory: rai_core_flask
- name: Install package
run: |
pip install -v -e .
working-directory: rai_core_flask
- name: Run tests
run: |
pytest --durations=10 --doctest-modules --junitxml=junit/test-results.xml --cov=rai_core_flask --cov-report=xml --cov-report=html
working-directory: rai_core_flask
- name: Upload code coverage results
uses: actions/upload-artifact@v3
with:
name: rai_core_flask-code-coverage-results
path: rai_core_flask/htmlcov
# Use always() to always run this step to publish test results when there are test failures
if: ${{ always() }}
- if: ${{ (matrix.operatingSystem == 'windows-latest') && (matrix.pythonVersion == '3.8') }}
name: Upload to codecov
id: codecovupload1
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: rai_core_flask
env_vars: OS,PYTHON
fail_ci_if_error: false
files: ./rai_core_flask/coverage.xml
flags: unittests
name: codecov-umbrella
verbose: true
- if: ${{ (steps.codecovupload1.outcome == 'failure') && (matrix.pythonVersion == '3.8') && (matrix.operatingSystem == 'windows-latest') }}
name: Retry upload to codecov
id: codecovupload2
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: rai_core_flask
env_vars: OS,PYTHON
fail_ci_if_error: false
files: ./rai_core_flask/coverage.xml
flags: unittests
name: codecov-umbrella
verbose: true
- name: Set codecov status
if: ${{ (matrix.pythonVersion == '3.8') && (matrix.operatingSystem == 'windows-latest') }}
shell: bash
run: |
if ${{ (steps.codecovupload1.outcome == 'success') || (steps.codecovupload2.outcome == 'success') }} ; then
echo fine
else
exit 1
fi