forked from naylor-b/testflo
-
Notifications
You must be signed in to change notification settings - Fork 7
149 lines (116 loc) · 3.98 KB
/
test_workflow.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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
name: Test testflo
on:
# Trigger on push or pull request events for the master branch
push:
branches: [ master ]
pull_request:
branches: [ master ]
# Allow running the workflow manually from the Actions tab
workflow_dispatch:
inputs:
debug_enabled:
type: boolean
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
required: false
default: false
permissions: {}
jobs:
tests:
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
include:
# test on Ubuntu
- NAME: Ubuntu Baseline
OS: ubuntu-latest
PY: '3.12'
# test on MacOS
- NAME: MacOS Baseline
OS: macos-latest
PY: '3.12'
runs-on: ${{ matrix.OS }}
name: ${{ matrix.NAME }}
defaults:
run:
shell: bash -l {0}
steps:
- name: Checkout code
uses: actions/checkout@v3
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.PY }}
- name: Install testflo
run: |
python -m pip install --upgrade pip
python -m pip install .
# Enable tmate debugging of manually-triggered workflows if the input option was provided
#
# To access the terminal through the web-interface:
# 1. Click on the web-browser link printed out in this action from the github
# workflow terminal
# 2. Press cntrl + c in the new tab that opens up to reveal the terminal
# 3. To activate the conda environment run:
# $ source $CONDA/etc/profile.d/conda.sh
# $ conda activate test
- name: Setup tmate session
uses: mxschmitt/action-tmate@v3
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }}
- name: Run tests
run: |
cd $HOME
testflo testflo.tests -vs --show_skipped --durations=5 --durations-min=0 --deprecations_report dep.txt || RC=$?
if [[ $RC -ne 1 ]]; then
echo "Expected some tests to fail."
exit 1
fi
if [[ ! -n `grep "Ran 26 tests" testflo_report.out` ]]; then
echo "Expected 26 tests."
exit 26
fi
if [[ ! -n `grep "Passed: 7" testflo_report.out` ]]; then
echo "Expected 7 tests to pass."
exit 7
fi
if [[ ! -n `grep "Failed: 8" testflo_report.out` ]]; then
echo "Expected 8 tests to fail."
exit 8
fi
if [[ ! -n `grep "Skipped: 11" testflo_report.out` ]]; then
echo "Expected 11 tests to be skipped."
exit 11
fi
grep "Deprecations Report" dep.txt
rm dep.txt
- name: Run tests in serial
run: |
cd $HOME
testflo testflo.tests -n 1 -vs --show_skipped --durations=5 --durations-min=0 --deprecations_report dep.txt || RC=$?
if [[ $RC -ne 1 ]]; then
echo "Expected some tests to fail."
exit 1
fi
if [[ ! -n `grep "Ran 26 tests using 1 processes" testflo_report.out` ]]; then
echo "Expected 26 tests on one process."
exit 26
fi
if [[ ! -n `grep "Passed: 7" testflo_report.out` ]]; then
echo "Expected 7 tests to pass."
exit 7
fi
if [[ ! -n `grep "Failed: 8" testflo_report.out` ]]; then
echo "Expected 8 tests to fail."
exit 8
fi
if [[ ! -n `grep "Skipped: 11" testflo_report.out` ]]; then
echo "Expected 11 tests to be skipped."
exit 11
fi
grep "Deprecations Report" dep.txt
rm dep.txt
- name: Notify slack of failure
uses: act10ns/[email protected]
with:
webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
status: ${{ job.status }}
if: failure()