@@ -9,73 +9,83 @@ parameters:
9
9
onnx_backends : {onnxruntime: ['0.4.0']}
10
10
job : {}
11
11
run_setup : ' True'
12
+ report_coverage : ' False'
13
+ artifact_name : ' single_test_coverage'
12
14
13
15
jobs :
14
- - ${{ each platform in parameters.platforms }} :
15
16
- job : ${{ parameters.job.name }}
16
17
pool :
17
- ${{ if eq(platform, 'linux') }} :
18
- vmImage : ' ubuntu-16.04'
19
- ${{ if eq(platform, 'windows') }} :
20
- vmImage : ' vs2017-win2016'
21
- ${{ if eq(platform, 'mac') }} :
22
- vmImage : ' macOS-10.13'
18
+ vmImage : $(CI_VM_IMAGE)
23
19
24
20
# Generate matrix
25
21
strategy :
26
22
matrix :
27
- ${{ each python_version in parameters.python_versions }} :
28
- ${{ each tf_version in parameters.tf_versions }} :
29
- ${{ each onnx_version in parameters.onnx_versions }} :
30
- ${{ each onnx_backend in parameters.onnx_backends }} :
31
- ${{ each onnx_backend_version in onnx_backend.value }} :
32
- ${{ each onnx_opset in parameters.onnx_opsets }} :
33
- ${{ if ne(onnx_opset, '') }} :
34
- ${{ format('{0} python{1} tf{2} onnx{3} opset{4} {5}{6}', platform, python_version, tf_version, onnx_version, onnx_opset, onnx_backend.key, onnx_backend_version) }} :
35
- CI_PYTHON_VERSION : ' ${{ python_version }}'
36
- CI_TF_VERSION : ' ${{ tf_version }}'
37
- CI_ONNX_VERSION : ' ${{ onnx_version }}'
38
- CI_ONNX_OPSET : ' ${{ onnx_opset }}'
39
- CI_ONNX_BACKEND : ' ${{ onnx_backend.key }}'
40
- CI_ONNX_BACKEND_VERSION : ' ${{ onnx_backend_version }}'
41
-
42
- ${{ if eq(tf_version, '') }} :
43
- CI_PIP_TF_NAME : ' tensorflow'
44
- ${{ if ne(tf_version, '') }} :
45
- CI_PIP_TF_NAME : ${{ format('tensorflow=={0}', tf_version) }}
46
-
47
- ${{ if eq(onnx_version, '') }} :
48
- CI_PIP_ONNX_NAME : ' onnx'
49
- ${{ if ne(onnx_version, '') }} :
50
- CI_PIP_ONNX_NAME : ${{ format('onnx=={0}', onnx_version) }}
51
-
52
- ${{ if eq(onnx_backend_version, '') }} :
53
- CI_PIP_ONNX_BACKEND_NAME : ' ${{ onnx_backend.key }}'
54
- ${{ if ne(onnx_backend_version, '') }} :
55
- CI_PIP_ONNX_BACKEND_NAME : ${{ format('{0}=={1}', onnx_backend.key, onnx_backend_version) }}
56
-
57
- ${{ if eq(onnx_opset, '') }} :
58
- ${{ format('{0} python{1} tf{2} onnx{3} {4}{5}', platform, python_version, tf_version, onnx_version, onnx_backend.key, onnx_backend_version) }} :
59
- CI_PYTHON_VERSION : ' ${{ python_version }}'
60
- CI_TF_VERSION : ' ${{ tf_version }}'
61
- CI_ONNX_VERSION : ' ${{ onnx_version }}'
62
- CI_ONNX_BACKEND : ' ${{ onnx_backend.key }}'
63
- CI_ONNX_BACKEND_VERSION : ' ${{ onnx_backend_version }}'
64
-
65
- ${{ if eq(tf_version, '') }} :
66
- CI_PIP_TF_NAME : ' tensorflow'
67
- ${{ if ne(tf_version, '') }} :
68
- CI_PIP_TF_NAME : ${{ format('tensorflow=={0}', tf_version) }}
69
-
70
- ${{ if eq(onnx_version, '') }} :
71
- CI_PIP_ONNX_NAME : ' onnx'
72
- ${{ if ne(onnx_version, '') }} :
73
- CI_PIP_ONNX_NAME : ${{ format('onnx=={0}', onnx_version) }}
74
-
75
- ${{ if eq(onnx_backend_version, '') }} :
76
- CI_PIP_ONNX_BACKEND_NAME : ' ${{ onnx_backend.key }}'
77
- ${{ if ne(onnx_backend_version, '') }} :
78
- CI_PIP_ONNX_BACKEND_NAME : ${{ format('{0}=={1}', onnx_backend.key, onnx_backend_version) }}
23
+ ${{ each platform in parameters.platforms }} :
24
+ ${{ each python_version in parameters.python_versions }} :
25
+ ${{ each tf_version in parameters.tf_versions }} :
26
+ ${{ each onnx_version in parameters.onnx_versions }} :
27
+ ${{ each onnx_backend in parameters.onnx_backends }} :
28
+ ${{ each onnx_backend_version in onnx_backend.value }} :
29
+ ${{ each onnx_opset in parameters.onnx_opsets }} :
30
+ ${{ if ne(onnx_opset, '') }} :
31
+ ${{ format('{0} python{1} tf{2} onnx{3} opset{4} {5}{6}', platform, python_version, tf_version, onnx_version, onnx_opset, onnx_backend.key, onnx_backend_version) }} :
32
+ ${{ if eq(platform, 'linux') }} :
33
+ CI_VM_IMAGE : ' ubuntu-16.04'
34
+ ${{ if eq(platform, 'windows') }} :
35
+ CI_VM_IMAGE : ' vs2017-win2016'
36
+ ${{ if eq(platform, 'mac') }} :
37
+ CI_VM_IMAGE : ' macOS-10.13'
38
+ CI_PYTHON_VERSION : ' ${{ python_version }}'
39
+ CI_TF_VERSION : ' ${{ tf_version }}'
40
+ CI_ONNX_VERSION : ' ${{ onnx_version }}'
41
+ CI_ONNX_OPSET : ' ${{ onnx_opset }}'
42
+ CI_ONNX_BACKEND : ' ${{ onnx_backend.key }}'
43
+ CI_ONNX_BACKEND_VERSION : ' ${{ onnx_backend_version }}'
44
+
45
+ ${{ if eq(tf_version, '') }} :
46
+ CI_PIP_TF_NAME : ' tensorflow'
47
+ ${{ if ne(tf_version, '') }} :
48
+ CI_PIP_TF_NAME : ${{ format('tensorflow=={0}', tf_version) }}
49
+
50
+ ${{ if eq(onnx_version, '') }} :
51
+ CI_PIP_ONNX_NAME : ' onnx'
52
+ ${{ if ne(onnx_version, '') }} :
53
+ CI_PIP_ONNX_NAME : ${{ format('onnx=={0}', onnx_version) }}
54
+
55
+ ${{ if eq(onnx_backend_version, '') }} :
56
+ CI_PIP_ONNX_BACKEND_NAME : ' ${{ onnx_backend.key }}'
57
+ ${{ if ne(onnx_backend_version, '') }} :
58
+ CI_PIP_ONNX_BACKEND_NAME : ${{ format('{0}=={1}', onnx_backend.key, onnx_backend_version) }}
59
+
60
+ ${{ if eq(onnx_opset, '') }} :
61
+ ${{ format('{0} python{1} tf{2} onnx{3} {4}{5}', platform, python_version, tf_version, onnx_version, onnx_backend.key, onnx_backend_version) }} :
62
+ ${{ if eq(platform, 'linux') }} :
63
+ CI_VM_IMAGE : ' ubuntu-16.04'
64
+ ${{ if eq(platform, 'windows') }} :
65
+ CI_VM_IMAGE : ' vs2017-win2016'
66
+ ${{ if eq(platform, 'mac') }} :
67
+ CI_VM_IMAGE : ' macOS-10.13'
68
+ CI_PLATFORM : ' ${{ platform }}'
69
+ CI_PYTHON_VERSION : ' ${{ python_version }}'
70
+ CI_TF_VERSION : ' ${{ tf_version }}'
71
+ CI_ONNX_VERSION : ' ${{ onnx_version }}'
72
+ CI_ONNX_BACKEND : ' ${{ onnx_backend.key }}'
73
+ CI_ONNX_BACKEND_VERSION : ' ${{ onnx_backend_version }}'
74
+
75
+ ${{ if eq(tf_version, '') }} :
76
+ CI_PIP_TF_NAME : ' tensorflow'
77
+ ${{ if ne(tf_version, '') }} :
78
+ CI_PIP_TF_NAME : ${{ format('tensorflow=={0}', tf_version) }}
79
+
80
+ ${{ if eq(onnx_version, '') }} :
81
+ CI_PIP_ONNX_NAME : ' onnx'
82
+ ${{ if ne(onnx_version, '') }} :
83
+ CI_PIP_ONNX_NAME : ${{ format('onnx=={0}', onnx_version) }}
84
+
85
+ ${{ if eq(onnx_backend_version, '') }} :
86
+ CI_PIP_ONNX_BACKEND_NAME : ' ${{ onnx_backend.key }}'
87
+ ${{ if ne(onnx_backend_version, '') }} :
88
+ CI_PIP_ONNX_BACKEND_NAME : ${{ format('{0}=={1}', onnx_backend.key, onnx_backend_version) }}
79
89
80
90
# Insert all properties other than pool/steps/strategy
81
91
${{ each pair in parameters.job }} :
@@ -108,3 +118,19 @@ jobs:
108
118
109
119
# Insert original steps
110
120
- ${{ parameters.job.steps }}
121
+
122
+ # Report and publish test coverage
123
+ # Save source path for combining coverage cross platform
124
+ - bash : |
125
+ coverage report
126
+ mv .coverage ${BUILD_ARTIFACTSTAGINGDIRECTORY}/.coverage.${CI_PLATFORM}_python${CI_PYTHON_VERSION}_tf${CI_TF_VERSION}_onnx${CI_ONNX_VERSION}_${CI_ONNX_BACKEND}${CI_ONNX_VERSION}
127
+ echo " ${SYSTEM_DEFAULTWORKINGDIRECTORY}" > ${BUILD_ARTIFACTSTAGINGDIRECTORY}/.coveragerc_paths.${CI_PLATFORM}_python${CI_PYTHON_VERSION}_tf${CI_TF_VERSION}_onnx${CI_ONNX_VERSION}_${CI_ONNX_BACKEND}${CI_ONNX_VERSION}
128
+ condition: and(succeededOrFailed(), eq(${{ parameters.report_coverage }}, 'True'))
129
+ displayName: 'Report Single Test Coverage'
130
+
131
+ - task : PublishBuildArtifacts@1
132
+ condition : succeeded()
133
+ inputs :
134
+ pathtoPublish : ' $(Build.ArtifactStagingDirectory)'
135
+ artifactName : ' ${{ parameters.artifact_name }}'
136
+ displayName : ' Deploy Single Test Coverage'
0 commit comments