Nig*_*888 3 azure azure-devops azure-pipelines azure-pipelines-release-task
我有一个跨越多个部署组的复杂版本,我计划使用 3rd 方vsts-git-release-tag扩展来标记版本。理想情况下,在标记存储库之前,整个发布(所有作业)将首先成功。
因此,我正在努力找出实现这一目标的最佳方法。如果这是一个构建管道而不是部署管道,很明显我可以使用 来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
Run Code Online (Sandbox Code Playgroud)
但是,本文档中指定的发布管道中似乎没有等效的功能(至少目前是这样)。
笔记
目前仅在构建管道中支持并行运行多个作业。发布管道中尚不支持它。
虽然它没有具体提到该dependsOn功能,但似乎没有办法在发布管道中使用它(如果我错了,请纠正我)。
我意识到我可能会创建一个包含单个作业和任务的单独阶段来创建 Git 标签,但这感觉就像一个黑客。在所有其他发布作业完成后,是否有更好的方法来运行特定的发布作业?
创建测试项目并向其发布管道添加多个作业,然后连续运行几次后,作业的顺序似乎是确定的。也就是说,它们似乎总是按照它们在门户中实际出现的顺序运行。
我做了几次谷歌搜索,这种行为似乎没有在任何地方记录。所以,我不确定是否有保证。但它可能适合我的情况。
如果有官方消息证实工单有保障,请留言。
只是一个建议:您可以使用多级管道,然后在 Azure Devops Ui 中也非常清楚地表示出来。
用于此的示例管道 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"
Run Code Online (Sandbox Code Playgroud)
请务必不要错过在您的用户设置中打开此预览功能。
| 归档时间: |
|
| 查看次数: |
2771 次 |
| 最近记录: |