有没有办法绕过 Azure 多级管道中的依赖项?
Is there a way to bypass dependencies in an Azure multistage pipeline?
- stage: DeployToIVT
displayName: Deploy ${{join(' AND ', parameters.ivtEnv )}}
dependsOn:
- Build
condition: |
and
(
eq(dependencies.Build.result, 'Succeeded'),
or
(
startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'),
startsWith(variables['Build.SourceBranch'], 'refs/heads/refresh/')
)
)
我有一个 master.yml 用于多级管道。
部署到 QA 的阶段是有条件的,依赖于成功构建。
有没有办法取消选中构建并只选中部署阶段以绕过该构建依赖项?
当我尝试它时,它会一起跳过那个阶段并且什么也不做。我试过添加一个条件说
in(dependencies.Build.result, 'Succeeded', 'SucceededWithIssues', 'Skipped')
但是上面的也不行
谢谢
我的团队也在做类似的事情。如果我们需要进行修补程序等,我们会跳过构建阶段并重用以前构建的工件或绕过整个环境。
我们使用类似于以下的技术,我们在排队时添加一个可以缩短条件的变量:
- stage: Build
displayName: 'CI'
condition: ne(variables['deployWithoutBuild'], 'true')
...
- stage: DeployToIVT
displayName: Deploy ${{join(' AND ', parameters.ivtEnv )}}
dependsOn:
- Build
condition: |
or(
and(
in(dependencies.Build.result, 'Succeeded','SucceededWithIssues','Skipped',''),
or(
startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'),
startsWith(variables['Build.SourceBranch'], 'refs/heads/refresh/')
)
),
eq(variables['deployWithoutBuild'], 'true')
)
我认为检查 ''
构建结果是为了适应该阶段是否未包含在 运行 的阶段列表中。
- stage: DeployToIVT
displayName: Deploy ${{join(' AND ', parameters.ivtEnv )}}
dependsOn:
- Build
condition: |
and
(
eq(dependencies.Build.result, 'Succeeded'),
or
(
startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'),
startsWith(variables['Build.SourceBranch'], 'refs/heads/refresh/')
)
)
我有一个 master.yml 用于多级管道。 部署到 QA 的阶段是有条件的,依赖于成功构建。 有没有办法取消选中构建并只选中部署阶段以绕过该构建依赖项? 当我尝试它时,它会一起跳过那个阶段并且什么也不做。我试过添加一个条件说
in(dependencies.Build.result, 'Succeeded', 'SucceededWithIssues', 'Skipped')
但是上面的也不行
谢谢
我的团队也在做类似的事情。如果我们需要进行修补程序等,我们会跳过构建阶段并重用以前构建的工件或绕过整个环境。
我们使用类似于以下的技术,我们在排队时添加一个可以缩短条件的变量:
- stage: Build
displayName: 'CI'
condition: ne(variables['deployWithoutBuild'], 'true')
...
- stage: DeployToIVT
displayName: Deploy ${{join(' AND ', parameters.ivtEnv )}}
dependsOn:
- Build
condition: |
or(
and(
in(dependencies.Build.result, 'Succeeded','SucceededWithIssues','Skipped',''),
or(
startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'),
startsWith(variables['Build.SourceBranch'], 'refs/heads/refresh/')
)
),
eq(variables['deployWithoutBuild'], 'true')
)
我认为检查 ''
构建结果是为了适应该阶段是否未包含在 运行 的阶段列表中。