gpt4 book ai didi

azure-devops - Azure Pipelines - 并行步骤 (YAML)

转载 作者:行者123 更新时间:2023-12-03 14:20:30 25 4
gpt4 key购买 nike

我正在设置我的 Azure Devops Pipelines,并且有一个需要一些相当长的设置步骤才能运行的构建。这些需要在其他可以并行运行的任务之前运行。

但是,我只能通过指定作业来完成此操作,这需要每次都执行这些冗长的步骤。 IE:

jobs:
- job: Run1
steps:
- task: Long running setup task
- task: Run taskA
- job: Run2
- task: Long running setup task
- task: Run taskB

有没有办法让这个长时间运行的任务运行,并使任务 A/B 依赖于该环境而不需要按顺序运行它们?理想情况下,它会是这样的:
-job
steps:
-task: Long running setup
-task: Parallel: taskA
-task: Parallel: taskB

或者,如果可能的话,之前的作业是否拍摄了容器/镜像快照并重用?

最佳答案

简短的回答,你不能。

作业中的任务无法并行运行,因为它们在同一代理上运行,并且 Azure Devops 无法“快照”环境以便稍后由其他作业并行重新利用。但是作业可以并行运行,因为它们可以安排在不同的代理上,因此设置将运行两次但并行运行。因此,您需要根据自己的要求在时间和资源使用之间进行权衡。

不过,还有另一种解决方案,取决于您愿意为此投资多少:

如果您的“设置”不经常更改并且您愿意托管自己的代理。然后,您可以运行一个单独的“设置 + 代理”构建,它会创建代理的 docker 镜像,将其推送到您的 azure 容器注册表,然后将该镜像部署到您的自托管代理(Azure Kubernetes 服务)集群。然后任务 A 和任务 B 可以轻松地并行运行,前提是它们运行的​​环境(代理 + 设置 docker 镜像)始终准备就绪。这正是我的设置。

见:Azure DevOps Docker

关于azure-devops - Azure Pipelines - 并行步骤 (YAML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56195607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com