1
- # Continuous Integration (CI) pipeline that orchestrates the training, evaluation, registration, deployment, and testing of the diabetes_regression model.
1
+ # Continuous Integration (CI) pipeline that orchestrates the training, evaluation, and registration of the diabetes_regression model.
2
2
3
3
resources :
4
4
containers :
27
27
stages :
28
28
- stage : ' Model_CI'
29
29
displayName : ' Model CI'
30
- condition : not(variables['MODEL_BUILD_ID'])
31
30
jobs :
32
31
- job : " Model_CI_Pipeline"
33
32
displayName : " Model CI Pipeline"
@@ -48,8 +47,8 @@ stages:
48
47
displayName : ' Publish Azure Machine Learning Pipeline'
49
48
50
49
- stage : ' Trigger_AML_Pipeline'
51
- displayName : ' Train model'
52
- condition : and( succeeded(), not(variables['MODEL_BUILD_ID']) )
50
+ displayName : ' Train and evaluate model'
51
+ condition : succeeded()
53
52
variables :
54
53
BUILD_URI : ' $(SYSTEM.COLLECTIONURI)$(SYSTEM.TEAMPROJECT)/_build/results?buildId=$(BUILD.BUILDID)'
55
54
jobs :
@@ -91,116 +90,8 @@ stages:
91
90
- job : " Training_Run_Report"
92
91
dependsOn : " Run_ML_Pipeline"
93
92
condition : always()
94
- displayName : " Determine if evaluation succeeded and new model is registered"
93
+ displayName : " Publish artifact if new model was registered"
95
94
container : mlops
96
95
timeoutInMinutes : 0
97
96
steps :
98
- - template : diabetes_regression-get-model-version-template.yml
99
-
100
- - stage : ' Deploy_ACI'
101
- displayName : ' Deploy to ACI'
102
- dependsOn : Trigger_AML_Pipeline
103
- condition : and(or(succeeded(), variables['MODEL_BUILD_ID']), variables['ACI_DEPLOYMENT_NAME'])
104
- jobs :
105
- - job : " Deploy_ACI"
106
- displayName : " Deploy to ACI"
107
- container : mlops
108
- timeoutInMinutes : 0
109
- steps :
110
- - template : diabetes_regression-get-model-version-template.yml
111
- - task : ms-air-aiagility.vss-services-azureml.azureml-model-deploy-task.AMLModelDeploy@0
112
- displayName : ' Azure ML Model Deploy'
113
- inputs :
114
- azureSubscription : $(WORKSPACE_SVC_CONNECTION)
115
- modelSourceType : manualSpec
116
- modelName : ' $(MODEL_NAME)'
117
- modelVersion : $(MODEL_VERSION)
118
- inferencePath : ' $(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/inference_config.yml'
119
- deploymentTarget : ACI
120
- deploymentName : $(ACI_DEPLOYMENT_NAME)
121
- deployConfig : ' $(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/deployment_config_aci.yml'
122
- overwriteExistingDeployment : true
123
- - task : AzureCLI@1
124
- displayName : ' Smoke test'
125
- inputs :
126
- azureSubscription : ' $(WORKSPACE_SVC_CONNECTION)'
127
- scriptLocation : inlineScript
128
- inlineScript : |
129
- set -e # fail on error
130
- export SUBSCRIPTION_ID=$(az account show --query id -o tsv)
131
- python -m ml_service.util.smoke_test_scoring_service --type ACI --service "$(ACI_DEPLOYMENT_NAME)"
132
-
133
- - stage : ' Deploy_AKS'
134
- displayName : ' Deploy to AKS'
135
- dependsOn : Deploy_ACI
136
- condition : and(succeeded(), variables['AKS_DEPLOYMENT_NAME'])
137
- jobs :
138
- - job : " Deploy_AKS"
139
- displayName : " Deploy to AKS"
140
- container : mlops
141
- timeoutInMinutes : 0
142
- steps :
143
- - template : diabetes_regression-get-model-version-template.yml
144
- - task : ms-air-aiagility.vss-services-azureml.azureml-model-deploy-task.AMLModelDeploy@0
145
- displayName : ' Azure ML Model Deploy'
146
- inputs :
147
- azureSubscription : $(WORKSPACE_SVC_CONNECTION)
148
- modelSourceType : manualSpec
149
- modelName : ' $(MODEL_NAME)'
150
- modelVersion : $(MODEL_VERSION)
151
- inferencePath : ' $(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/inference_config.yml'
152
- deploymentTarget : AKS
153
- aksCluster : $(AKS_COMPUTE_NAME)
154
- deploymentName : $(AKS_DEPLOYMENT_NAME)
155
- deployConfig : ' $(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/deployment_config_aks.yml'
156
- overwriteExistingDeployment : true
157
- - task : AzureCLI@1
158
- displayName : ' Smoke test'
159
- inputs :
160
- azureSubscription : ' $(WORKSPACE_SVC_CONNECTION)'
161
- scriptLocation : inlineScript
162
- inlineScript : |
163
- set -e # fail on error
164
- export SUBSCRIPTION_ID=$(az account show --query id -o tsv)
165
- python -m ml_service.util.smoke_test_scoring_service --type AKS --service "$(AKS_DEPLOYMENT_NAME)"
166
-
167
- - stage : ' Deploy_Webapp'
168
- displayName : ' Deploy to Webapp'
169
- dependsOn : Trigger_AML_Pipeline
170
- condition : and(or(succeeded(), variables['MODEL_BUILD_ID']), variables['WEBAPP_DEPLOYMENT_NAME'])
171
- jobs :
172
- - job : " Deploy_Webapp"
173
- displayName : " Deploy to Webapp"
174
- container : mlops
175
- timeoutInMinutes : 0
176
- steps :
177
- - template : diabetes_regression-get-model-version-template.yml
178
- - task : AzureCLI@1
179
- displayName : ' Create scoring image and set IMAGE_LOCATION variable'
180
- inputs :
181
- azureSubscription : ' $(WORKSPACE_SVC_CONNECTION)'
182
- scriptLocation : inlineScript
183
- inlineScript : |
184
- set -e # fail on error
185
- export SUBSCRIPTION_ID=$(az account show --query id -o tsv)
186
- python -m ml_service.util.create_scoring_image --output_image_location_file image_location.txt
187
- # Output image location to Azure DevOps job
188
- IMAGE_LOCATION="$(cat image_location.txt)"
189
- echo "##vso[task.setvariable variable=IMAGE_LOCATION]$IMAGE_LOCATION"
190
- - task : AzureWebAppContainer@1
191
- name : WebAppDeploy
192
- displayName : ' Azure Web App on Container Deploy'
193
- inputs :
194
- azureSubscription : ' $(AZURE_RM_SVC_CONNECTION)'
195
- appName : ' $(WEBAPP_DEPLOYMENT_NAME)'
196
- resourceGroupName : ' $(RESOURCE_GROUP)'
197
- imageName : ' $(IMAGE_LOCATION)'
198
- - task : AzureCLI@1
199
- displayName : ' Smoke test'
200
- inputs :
201
- azureSubscription : ' $(WORKSPACE_SVC_CONNECTION)'
202
- scriptLocation : inlineScript
203
- inlineScript : |
204
- set -e # fail on error
205
- export SUBSCRIPTION_ID=$(az account show --query id -o tsv)
206
- python -m ml_service.util.smoke_test_scoring_service --type Webapp --service "$(WebAppDeploy.AppServiceApplicationUrl)/score"
97
+ - template : diabetes_regression-publish-model-artifact-template.yml
0 commit comments