-
Notifications
You must be signed in to change notification settings - Fork 288
133 lines (107 loc) · 3.36 KB
/
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
name: Tests
on:
# Allow to manually trigger through github API
workflow_dispatch:
# Triggers with push to these branches
push:
branches:
- master
- development
# Triggers with push to pr targeting these branches
pull_request:
branches:
- master
- development
schedule:
# Every day at 7AM UTC
- cron: '0 07 * * *'
env:
# Arguments used for pytest
pytest-args: >-
--forked
--durations=20
--timeout=600
--timeout-method=signal
-v
# Arguments used for code-cov which is later used to annotate PR's on github
code-cov-args: >-
--cov=autoPyTorch
--cov-report=xml
--cov-config=.coveragerc
jobs:
tests:
name: ${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.kind }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
python-version: ['3.7', '3.8', '3.9', '3.10']
kind: ['source', 'dist']
exclude:
# Exclude all configurations *-*-dist, include one later
- kind: 'dist'
# Exclude windows as bash commands wont work in windows runner
- os: windows-latest
# Exclude macos as there are permission errors using conda as we do
- os: macos-latest
# Exclude python 3.10 as torch is not support python 3.10 yet
- python-version: '3.10'
include:
# Add the tag code-cov to ubuntu-3.7-source
- os: ubuntu-latest
python-version: 3.7
kind: 'source'
code-cov: true
# Include one config with dist, ubuntu-3.7-dist
- os: ubuntu-latest
python-version: 3.7
kind: 'dist'
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Source install
if: matrix.kind == 'source'
run: |
git submodule update --init --recursive
python -m pip install --upgrade pip
pip install -e .[forecasting,test]
- name: Dist install
if: matrix.kind == 'dist'
run: |
git submodule update --init --recursive
python setup.py sdist
last_dist=$(ls -t dist/autoPyTorch-*.tar.gz | head -n 1)
pip install $last_dist[forecasting,test]
- name: Store repository status
id: status-before
run: |
echo "::set-output name=BEFORE::$(git status --porcelain -b)"
- name: Run tests
run: |
if [ ${{ matrix.code-cov }} ]; then
python -m pytest ${{ env.pytest-args }} ${{ env.code-cov-args }} test
else
python -m pytest ${{ env.pytest-args }} test
fi
- name: Check for files left behind by test
if: ${{ always() }}
run: |
before="${{ steps.status-before.outputs.BEFORE }}"
after="$(git status --porcelain -b)"
if [[ "$before" != "$after" ]]; then
echo "git status from before: $before"
echo "git status from after: $after"
echo "Not all generated files have been deleted!"
exit 1
fi
- name: Upload coverage
if: matrix.code-cov && always()
uses: codecov/codecov-action@v1
with:
fail_ci_if_error: true
verbose: true