我是一个合并前的PR验证管道A,它具有4个部署到Salesforce组织的阶段:
由于此管道在每个PR引发事件上排队,因此我们已经达到了这样一种情况,即部署线程彼此冲突且由于依赖关系而失败(不幸的是,Salesforce组织一次只能运行1个线程。)。>
我想确保下一次运行直到第一个运行完成后才开始。它保留在队列中,但不会启动。
例如:2个PR在2次跑步中提高了结果(跑步1和跑步2)。尽管Run#2已排队,但我不希望它在Run#1完成之前就开始执行(构建结果状态并不重要,因为它们将来自不同的状态分支)。
在Jenkins中,不允许并发构建就是答案。
答案 0 :(得分:0)
在Azure Devops中,恐怕没有这样的设置,不允许在多阶段管道中进行并发构建。
我可以重述您的情况。触发两个管道运行时,阶段将交替运行。目前暂无控制顺序的选项。
解决方法:
您可以将批准类型环境添加到构建定义中。
以下是步骤:
第一步:在管道->环境
中创建一个环境第2步:将批准添加到环境中。
第3步:更改Yaml定义。
pool:
vmImage: 'ubuntu-latest'
stages:
- stage: QA
jobs:
- deployment: test
displayName: deploy Web App
pool:
vmImage: 'Ubuntu-latest'
environment: 'test'
strategy:
runOnce:
deploy:
steps:
- script: echo Hello world
- stage: QB
jobs:
- job:
steps:
- script: echo "B"
- stage: QC
jobs:
- job:
steps:
- script: echo "B"
- stage: QD
jobs:
- job:
steps:
- script: echo "B"
注意:如果需要将环境添加到yaml,则工作为部署类型。
然后,当两个PR触发管道时,需要批准两次运行。在这种情况下,您可以手动控制其运行顺序。
另一方面,此要求很有价值。
您可以在our UserVoice site(这是我们提供产品建议的主要论坛)上添加对此功能的请求。感谢您帮助我们构建更好的Azure DevOps。