是否可以在管道阶段之间保留Azure托管的构建代理

时间:2019-07-02 23:01:56

标签: azure-devops pipeline

我有一个包含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阶段失败也是如此。

1 个答案:

答案 0 :(得分:0)

  

是否有可能使Azure托管的构建代理在   管线阶段?

不,您不能。托管代理都是由服务器随机分配的。您不能使用任何脚本或命令来指定特定的脚本或命令。

由于您已经说过Build_Stage将在外部创建一些资源,因此您想执行clean up来清理它。

实际上,为此,您可以执行此clean up命令作为Build_Stage的最后一步。如果是这样,无论使用托管代理还是私有代理都不会影响您的需求。