gpt4 book ai didi

Azure YAML-Pipeline 跳过作业,我不知道为什么

转载 作者:行者123 更新时间:2023-12-04 16:38:42 25 4
gpt4 key购买 nike

即使我设置了 System.Debug=True,除了“作业被跳过”之外,我没有得到其他信息。字面意思就是这四个字。

我在 Azure Devops 上创建了一个 YAML-Release 管道,它基本上运行作业:

  • 工作:build_release
  • 作业:部署:deploy_test
  • 作业:部署:deploy_stage

为了测试行为,我首先只运行前两个作业并部署到 TEST。现在我想部署到 STAGE,但似乎管道仅在我从头开始/创建新版本时才工作。但我现在想做的是将现有版本从 TEST 部署到 STAGE。当我尝试通过重新运行管道来做到这一点时,Azure 只是跳过所有步骤。为什么会发生这种情况?如何避免这种情况并重新运行管道?我没有设定任何条件。

编辑附加信息:

管道结构

<小时/>
trigger:
- release/*

variables:
...

resources:
- repo: self


pool:
vmImage: $(vmImageName)

stages:
- stage: build_release
displayName: 'awesome build'
condition: contains(variables['Build.SourceBranchName'], 'release/')
jobs:
- job: build_release
steps:
...

- stage: deploy_test
displayName: 'awesome test deploy'
jobs:
- deployment: deploy_test
environment: 'test'
strategy:
runOnce:
deploy:
steps:
...

- stage: deploy_stage
displayName: 'awesome stage deploy'
jobs:
- deployment: deploy_stage
environment: 'stage'
strategy:
runOnce:
deploy:
steps:
...
<小时/>

我尝试以两种不同的方式触发它,但结果相同(一切都被跳过):答:我创建了一个新版本,它是之前部署的版本的副本。B. 我点击了运行管道。

最佳答案

此问题是由您为阶段 build_release 指定的条件 condition: contains(variables['Build.SourceBranchName'], 'release/') 引起的。

当触发器设置为-release/*时。变量 variables['Build.SourceBranchName'] 将被计算为 / 之后的分支名称。

例如:

如果您从分支 release/release1.0 触发管道。 variables['Build.SourceBranchName'] 的值将为 release1.0 而不是 release/release1.0。因此,条件 contains(variables['Build.SourceBranchName'], 'release/') 将始终为 false,这会导致阶段 build_release 被跳过。

enter image description here

并且,如果您没有指定阶段 deploy_test 和阶段 deploy_stage 的依赖关系,则默认情况下下一阶段将依赖于上一阶段。因此这两个阶段也被跳过,因为阶段 build_release 被跳过。这就是您看到所有步骤都被跳过的原因。

enter image description here

解决方案:

使用variable条件中的 Build.SourceBranch

按如下方式更改条件:(发布分支中的 yaml 文件也应按如下方式更改)

- stage: build_release
displayName: 'awesome build'
condition: contains(variables['Build.SourceBranch'], 'release/') #use Build.SourceBranch

注意:如果您有意触发管道。请确保您选择从发布分支触发管道。或者默认从主分支触发管道。

enter image description here

关于Azure YAML-Pipeline 跳过作业,我不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65289159/

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