gpt4 book ai didi

azure - 控制 Azure DevOps 发布管道中的作业顺序

转载 作者:行者123 更新时间:2023-12-03 23:21:17 26 4
gpt4 key购买 nike

我有一个跨越多个部署组的复杂版本,我计划使用第 3 方 vsts-git-release-tag扩展来标记版本。理想情况下,整个发布(所有作业)将在标记存储库之前首先成功。

所以我正在努力找出实现这一目标的最佳方法是什么。如果这是构建管道而不是发布管道,很明显我可以安排它们 using dependsOn ,如下。

jobs:
- job: Deployment_Group_1
steps:
- script: echo hello from Deployment Group 1
- job: Deployment_Group_2
steps:
- script: echo hello from Deployment Group 2
- job: Tag_Repo
steps:
- script: echo this is where I would tag the Repo
dependsOn:
- Deployment_Group_1
- Deployment_Group_2

但是,发布管道中似乎没有指定的等效功能(至少目前)in this document .

Note

Running multiple jobs in parallel is supported only in build pipelines at present. It is not yet supported in release pipelines.

尽管它没有具体提及 dependsOn 功能,但似乎没有办法在发布管道中利用它(如果我错了,请纠正我)。

我意识到我可能可以创建一个单独的阶段,其中包含单个作业和任务来创建 Git 标签,但这感觉就像一个黑客。 在所有其他发布作业完成后,是否有更好的方法来运行特定的发布作业?

最佳答案

只是一个建议:你可以使用 m ultistage pipelines Azure Devops Ui 中也非常清楚地体现了这一点。

阶段有作业,作业有步骤: enter image description here

管道 yml 示例:

trigger:
batch: true
branches:
include:
- "*"


resources:
containers:
- container: ubuntu
image: ubuntu:18.04

stages:
- stage: STAGE1
jobs:
- job: PrintInfoStage1Job1
container: ubuntu
steps:
- script: |
echo "THIS IS STAGE 1, JOB 1"
displayName: "JOB 1"
- job: PrintInfoStage1Job2
dependsOn: PrintInfoStage1Job1
container: ubuntu
steps:
- script: |
echo "THIS IS STAGE 1, JOB 2"
displayName: "JOB 2"

- stage: STAGE2
dependsOn: STAGE1
jobs:
- job: PrintInfoStage2Job1
dependsOn: []
container: ubuntu
steps:
- script: |
echo "THIS IS THE STAGE 2, JOB 1"
displayName: "JOB 1"

- job: PrintInfoStage2Job2
container: ubuntu
dependsOn: []
steps:
- script: |
echo "THIS IS THE STAGE 2, JOB 2"
displayName: "JOB 2"

请务必不要错过在用户设置中打开此预览功能的机会。

关于azure - 控制 Azure DevOps 发布管道中的作业顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55260797/

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