![](/img/trans.png)
[英]Azure DevOps yaml-pipeline deployment: “Provider phase is not supported”
[英]Azure YAML-Pipeline skips jobs and I have no idea why
即使我设置了 System.Debug=True,除了“作业被跳过”之外,我没有得到任何其他信息。 字面意思就是这四个字。
我在 Azure Devops 上创建了一个 YAML-Release 管道,它基本上运行这些作业:
为了测试行为,我首先只运行了前两个作业并部署到 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:
...
我尝试以两种不同的方式触发它,但结果相同(所有内容都被跳过): A. 我创建了一个新版本,它是之前部署的版本的副本。 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
阶段被跳过。
而且,如果您没有为阶段deploy_test
和阶段deploy_stage
指定依赖关系,则下一个阶段将默认依赖于上一个阶段。 所以这两个阶段也被跳过了,因为阶段build_release
被跳过了。 这就是为什么您看到所有步骤都被跳过的原因。
解决方案:
在条件中使用变量Build.SourceBranch
。
更改条件如下:(发布分支中的 yaml 文件也应更改如下)
- stage: build_release
displayName: 'awesome build'
condition: contains(variables['Build.SourceBranch'], 'release/') #use Build.SourceBranch
注意:如果您手动触发了您的管道。 请确保您的 select 从发布分支触发管道。 或者默认情况下,管道将从主分支触发。
这里的问题是,在创建管道运行时,听起来好像没有选择部署阶段。 因此,在管道的编译时,该阶段被跳过,因为它被定义为在该运行中被跳过。
至于您正在运行什么,第一个问题是运行 deploy_stage 的这些更改是在主分支中吗? 除非另有说明,否则默认情况下管道将针对主分支运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.