我可以在我的 Azure 管道中使用 2 个代理池吗?
Can I use 2 agent pools in my azure pipelines?
我有一个自托管代理。它用作一种部署代理。
我们软件的所有发行版本都由该代理构建,然后复制到网络位置。
问题:有没有一种方法可以在我的管道中同时使用来自 'azure-pipelines' Microsoft 托管池和我自己的自托管池的代理?
编辑
很遗憾,目前无法做到这一点。
这就是为什么你应该给功能请求投赞成票:
https://developercommunity.visualstudio.com/t/allow-agent-pools-to-contain-microsoft-hosted-and/396893
这是不可能的。 developer community 上有一张票要求类似的功能,但它已经关闭。
还有一个ticketAllow agent pools to contain Microsoft hosted and self-hosted agents提到了类似的情况,它是开放的,但MS在那儿沉默了。
您想获得哪些好处?
基本上,您可以在一个 build/release 定义中使用多个代理池。您只需将定义拆分为多个作业,然后将所需的代理池分配给相应的作业。
如果您想从一个管道动态分配不同的池来执行相同的构建步骤,我们不能这样做(正如 Krzysztof 提到的)。
你可以做一些骇人听闻的事情并使用多个 jobs/stages。 Jobs/stages 将使用不同的池。您只需要跳过它是否是发布版本。请注意,管道骨架未经过测试。
variables:
${{ eq(variables['Build.SourceBranch'], 'release/*') }}:
release_build: True
stages:
- stage: normal
condition: eq(variables['release_build'], False)
pool:
vmImage: 'windows-latest'
jobs:
- job: Builds
steps:
- template: build.yaml
- stage: release
condition: eq(variables['release_build'], True)
pool: My-agent
jobs:
- job: Builds
steps:
- template: build.yaml
我有一个自托管代理。它用作一种部署代理。 我们软件的所有发行版本都由该代理构建,然后复制到网络位置。
问题:有没有一种方法可以在我的管道中同时使用来自 'azure-pipelines' Microsoft 托管池和我自己的自托管池的代理?
编辑
很遗憾,目前无法做到这一点。 这就是为什么你应该给功能请求投赞成票: https://developercommunity.visualstudio.com/t/allow-agent-pools-to-contain-microsoft-hosted-and/396893
这是不可能的。 developer community 上有一张票要求类似的功能,但它已经关闭。
还有一个ticketAllow agent pools to contain Microsoft hosted and self-hosted agents提到了类似的情况,它是开放的,但MS在那儿沉默了。
您想获得哪些好处?
基本上,您可以在一个 build/release 定义中使用多个代理池。您只需将定义拆分为多个作业,然后将所需的代理池分配给相应的作业。
如果您想从一个管道动态分配不同的池来执行相同的构建步骤,我们不能这样做(正如 Krzysztof 提到的)。
你可以做一些骇人听闻的事情并使用多个 jobs/stages。 Jobs/stages 将使用不同的池。您只需要跳过它是否是发布版本。请注意,管道骨架未经过测试。
variables:
${{ eq(variables['Build.SourceBranch'], 'release/*') }}:
release_build: True
stages:
- stage: normal
condition: eq(variables['release_build'], False)
pool:
vmImage: 'windows-latest'
jobs:
- job: Builds
steps:
- template: build.yaml
- stage: release
condition: eq(variables['release_build'], True)
pool: My-agent
jobs:
- job: Builds
steps:
- template: build.yaml