我有一个包含2个阶段的管道-构建/测试阶段和拆解阶段,该阶段在构建/测试阶段之后清理外部资源。拆卸阶段取决于在构建/测试阶段生成的某些状态信息。我正在尝试使用Azure托管代理来执行此操作。问题在于我现在所拥有的方式,每个阶段都部署一个新代理,因此我失去了拆卸阶段所需的状态。
我的管道如下所示:
trigger:
- master
stages:
- stage: Build_stage
jobs:
- job: Build_job
pool:
vmImage: 'ubuntu-latest'
steps:
- task: InstallSomeTool@
- script: invoke someTool
- script: run some test
- stage: Teardown_stage
condition: always()
jobs:
- job: Teardown_job
pool:
vmImage: 'ubuntu-latest'
steps:
- script: invoke SomeTool --cleanup
拆卸阶段失败是因为它是一个全新的代理,对先前调用someTool脚本创建的状态一无所知。
我正在尝试这样做,因为Build阶段会在外部创建一些我希望每次清理的资源,即使Build阶段失败也是如此。
答案 0 :(得分:0)
是否有可能使Azure托管的构建代理在 管线阶段?
不,您不能。托管代理都是由服务器随机分配的。您不能使用任何脚本或命令来指定特定的脚本或命令。
由于您已经说过Build_Stage将在外部创建一些资源,因此您想执行clean up
来清理它。
实际上,为此,您可以执行此clean up
命令作为Build_Stage的最后一步。如果是这样,无论使用托管代理还是私有代理都不会影响您的需求。