@@ -7,72 +7,81 @@ parameters:
7
7
device : ' cpu'
8
8
dockerfile : ' .azure_pipelines/dockerfiles/linux-cpu.dockerfile'
9
9
docker_image : ' olive-pipeline:latest'
10
+ base_image : ' ubuntu:22.04'
11
+ trt_version : ' '
10
12
onnxruntime : ' onnxruntime'
11
13
subfolder : ' local'
12
14
torch : ' torch'
13
15
test_script : ' run_test.sh'
14
16
onnxruntime_nightly : false
15
17
16
18
jobs :
17
- - job : ${{ parameters.name }}_Test_Examples
18
- timeoutInMinutes : 300
19
- pool :
20
- name : ${{ parameters.pool }}
21
- strategy :
22
- matrix :
23
- ${{ insert }} : ${{ parameters.examples }}
24
- variables :
25
- PIP_CACHE_DIR : $(Pipeline.Workspace)/.cache/pip
26
- HF_HOME : $(Pipeline.Workspace)/.cache/huggingface
27
- OLIVE_TEMPDIR : $(Pipeline.Workspace)/.olive_tempdir
19
+ - job : ${{ parameters.name }}_Test_Examples
20
+ timeoutInMinutes : 300
21
+ pool :
22
+ name : ${{ parameters.pool }}
23
+ strategy :
24
+ matrix :
25
+ ${{ insert }} : ${{ parameters.examples }}
26
+ variables :
27
+ PIP_CACHE_DIR : $(Pipeline.Workspace)/.cache/pip
28
+ HF_HOME : $(Pipeline.Workspace)/.cache/huggingface
29
+ OLIVE_TEMPDIR : $(Pipeline.Workspace)/.olive_tempdir
28
30
29
- steps :
30
- - template : build-docker-image-template.yaml
31
- parameters :
32
- python_version : ${{ parameters.python_version }}
33
- dockerfile : ${{ parameters.dockerfile }}
34
- docker_image : ${{ parameters.docker_image }}
31
+ steps :
32
+ - script : docker system df && docker system prune -a -f && docker system df
33
+ displayName : Clean docker images
34
+ continueOnError : true
35
35
36
- # set exampleRequirements to requirements.txt if user does not specify
37
- - script :
38
- echo "##vso[task.setvariable variable=exampleRequirements]requirements.txt"
39
- displayName : Set exampleRequirements
40
- condition : eq(variables['exampleRequirements'], '')
36
+ - template : build-docker-image-template.yaml
37
+ parameters :
38
+ python_version : ${{ parameters.python_version }}
39
+ dockerfile : ${{ parameters.dockerfile }}
40
+ docker_image : ${{ parameters.docker_image }}
41
+ base_image : ${{ parameters.base_image }}
42
+ trt_version : ${{ parameters.trt_version }}
41
43
42
- - script : |
43
- GPU_OPTION=""
44
- if [ "${{ parameters.device }}" = "gpu" ]; then
45
- GPU_OPTION="--gpus=all"
46
- fi
47
- docker run \
48
- $GPU_OPTION \
49
- -v $(Build.SourcesDirectory)/logs:/logs \
50
- -e WORKSPACE_SUBSCRIPTION_ID=$(workspace-subscription-id) \
51
- -e WORKSPACE_RESOURCE_GROUP=$(workspace-resource-group) \
52
- -e WORKSPACE_NAME=$(workspace-name) \
53
- -e MANAGED_IDENTITY_CLIENT_ID=$(olive-1es-identity-client-id) \
54
- -e PIPELINE_TEST_ACCOUNT_NAME=$(pipeline-test-account-name) \
55
- -e PIPELINE_TEST_CONTAINER_NAME=$(pipeline-test-container-name) \
56
- -e KEYVAULT_NAME=$(keyvault-name) \
57
- -e HF_TOKEN=$(hf_token) \
58
- ${{ parameters.docker_image }} \
59
- bash .azure_pipelines/scripts/${{ parameters.test_script }} \
60
- ${{ parameters.torch }} \
61
- ${{ parameters.onnxruntime }} \
62
- ${{ parameters.onnxruntime_nightly }} \
63
- examples/$(exampleFolder)/$(exampleRequirements) \
64
- examples/test/${{ parameters.subfolder }}/test_$(exampleName).py
65
- displayName: Run Tests in Docker
44
+ # set exampleRequirements to requirements.txt if user does not specify
45
+ - script :
46
+ echo "##vso[task.setvariable variable=exampleRequirements]requirements.txt"
47
+ displayName : Set exampleRequirements
48
+ condition : eq(variables['exampleRequirements'], '')
66
49
67
- # Step 3: Publish test results
68
- - task : PublishTestResults@2
69
- condition : succeededOrFailed()
70
- inputs :
71
- testResultsFiles : ' **/logs/test_examples-TestOlive.xml'
72
- testRunTitle : ' $(Build.BuildNumber)[$(Agent.JobName)]'
73
- failTaskOnFailedTests : true
74
- displayName : Publish Test Results
50
+ - script : |
51
+ GPU_OPTION=""
52
+ if [ "${{ parameters.device }}" = "gpu" ]; then
53
+ GPU_OPTION="--gpus=all"
54
+ fi
55
+ docker run \
56
+ --shm-size=4g \
57
+ $GPU_OPTION \
58
+ -v $(Build.SourcesDirectory)/logs:/logs \
59
+ -e WORKSPACE_SUBSCRIPTION_ID=$(workspace-subscription-id) \
60
+ -e WORKSPACE_RESOURCE_GROUP=$(workspace-resource-group) \
61
+ -e WORKSPACE_NAME=$(workspace-name) \
62
+ -e MANAGED_IDENTITY_CLIENT_ID=$(olive-1es-identity-client-id) \
63
+ -e PIPELINE_TEST_ACCOUNT_NAME=$(pipeline-test-account-name) \
64
+ -e PIPELINE_TEST_CONTAINER_NAME=$(pipeline-test-container-name) \
65
+ -e KEYVAULT_NAME=$(keyvault-name) \
66
+ -e HF_TOKEN=$(hf_token) \
67
+ ${{ parameters.docker_image }} \
68
+ bash .azure_pipelines/scripts/${{ parameters.test_script }} \
69
+ ${{ parameters.torch }} \
70
+ ${{ parameters.onnxruntime }} \
71
+ ${{ parameters.onnxruntime_nightly }} \
72
+ examples/$(exampleFolder)/$(exampleRequirements) \
73
+ examples/test/${{ parameters.subfolder }}/test_$(exampleName).py
74
+ displayName: Run Tests in Docker
75
75
76
- - script : sudo git clean -dfX
77
- condition : always()
78
- displayName : Clean remaining artifacts
76
+ # Step 3: Publish test results
77
+ - task : PublishTestResults@2
78
+ condition : succeededOrFailed()
79
+ inputs :
80
+ testResultsFiles : ' **/logs/test_examples-TestOlive.xml'
81
+ testRunTitle : ' $(Build.BuildNumber)[$(Agent.JobName)]'
82
+ failTaskOnFailedTests : true
83
+ displayName : Publish Test Results
84
+
85
+ - script : sudo git clean -dfX
86
+ condition : always()
87
+ displayName : Clean remaining artifacts
0 commit comments