是否可以让 Azure 托管构建代理在管道阶段之间持续存在
Is it possible to have an Azure hosted build agent persist between pipeline stages
我有一个包含 2 个阶段的管道 - build/test 阶段和一个在 build/test 阶段之后清理外部资源的拆解阶段。拆卸阶段取决于在 build/test 阶段生成的一些状态信息。我正在尝试使用 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 脚本创建的状态一无所知。
我正在尝试这样做,因为构建阶段会在外部创建一些我希望每次都清理的资源,即使构建阶段失败也是如此。
Is it possible to have an Azure hosted build agent persist between
pipeline stages?
不,你不能。托管代理都是由服务器随机分配的。您不能使用任何脚本或命令来指定特定的脚本或命令。
既然你说Build_Stage会在外部创建一些资源,所以你要执行clean up
来清理它。
事实上,为此,您可以执行此 clean up
命令作为 Build_Stage 中的最后一步。如果这样的话,不管是用hosted还是private agent都不会影响你想要的。
我有一个包含 2 个阶段的管道 - build/test 阶段和一个在 build/test 阶段之后清理外部资源的拆解阶段。拆卸阶段取决于在 build/test 阶段生成的一些状态信息。我正在尝试使用 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 脚本创建的状态一无所知。
我正在尝试这样做,因为构建阶段会在外部创建一些我希望每次都清理的资源,即使构建阶段失败也是如此。
Is it possible to have an Azure hosted build agent persist between pipeline stages?
不,你不能。托管代理都是由服务器随机分配的。您不能使用任何脚本或命令来指定特定的脚本或命令。
既然你说Build_Stage会在外部创建一些资源,所以你要执行clean up
来清理它。
事实上,为此,您可以执行此 clean up
命令作为 Build_Stage 中的最后一步。如果这样的话,不管是用hosted还是private agent都不会影响你想要的。