cRe*_*lts 5 azure-deployment azure-pipelines
如下面的 yaml 所示,当我们知道在parameters.deploymentTemplate 中包含的任何任务期间部署失败的原因时,我们会填充deploymentFailureReason 变量。我们希望能够在从 on:failure 作业调用时将该原因传递给我们的部署跟踪器。
我们知道如何在作业之间和阶段之间传递变量。两者都需要了解我们试图从中获取变量的作业和/或阶段。这些作业是基于每个虚拟机创建的,目前我们无法找到访问在部署作业中创建的 failure.reason 输出变量的方法。我们已经验证,当到达下面名为“failure”的 powershell 步骤时,deploymentFailureReason 已填充。只是似乎无法找到一种方法来完成 on:failure 工作。
我们曾考虑过将deploymentFailureReason写入文件并从on:failure作业中读取它,因为两者都在同一台机器上运行,但肯定有更好的方法。
我们欢迎任何想法、澄清问题或想法,这些可能会促使我们摆脱当前限制我们对此问题思考的框框。
parameters:
- name: deploymentTemplate
type: string
stages:
- stage: DevStage
jobs:
- deployment: Dev_Deployment
variables:
- name: deploymentFailureReason
value: ''
environment:
name: Dev-VM
resourceType: VirtualMachine
workspace:
clean: all
strategy:
runOnce:
deploy:
steps:
- template: ./deployment-initialize.yml
- template: ${{ parameters.deploymentTemplate }}
- powershell: |
Write-Output "were here"
Write-Output "deploymentFailureReason = $(deploymentFailureReason)"
Write-Host "##vso[task.setvariable variable=reason;isOutput=true]$(deploymentFailureReason)"
name: failure
condition: failed()
on: # On success or failure hook for runOnce deployment strategy
success: # Runs on success of all of the steps
steps:
- template: ./call-deployment-tracker.yml
parameters:
functionName: "DeploymentSuccess"
failure: # Runs on failure of any step
steps:
- template: ./call-deployment-tracker.yml
parameters:
functionName: "DeploymentFailure"
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
374 次 |
| 最近记录: |