对于一个给定的项目,我有四个构建管道,每个管道触发器都启用了CI,每个管道都有一个分支过滤器用于一个分支-主,登台,QA,开发。这些工作成功完成,对这四个分支之一的任何完成的拉取请求都成功启动了构建过程。
今天早上,我基于“开发”分支创建了一个新分支。 IT是单行更改,因此我决定使用DevOps编辑器在浏览器中进行在线更改。我保存了更改。
在线保存更改后,立即看到创建了新的构建管道(我收到一封电子邮件,指出我的构建失败)。是什么导致新的构建管道被创建?
新的构建管道看起来是自动创建的,它是纯YAML:
pool:
vmImage: 'Ubuntu 16.04'
variables:
buildConfiguration: 'Release'
BuildPlatform: 'Any CPU'
Parameters.solution: = '*.sln'
Parameters.ArtifactName: = 'xxxxxx'
steps:
- task: NuGetToolInstaller@0
displayName: 'Use NuGet 4.4.1'
inputs:
versionSpec: 4.4.1
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: '$(Parameters.solution)'
- task: VSBuild@1
displayName: 'Build solution'
inputs:
solution: '$(Parameters.solution)'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
- task: PublishSymbols@2
displayName: 'Publish symbols path'
inputs:
SearchPattern: '**\bin\**\*.pdb'
PublishSymbols: false
continueOnError: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
ArtifactName: '$(Parameters.ArtifactName)'
在项目中,没有创建任何拉取请求,在我的私有分支中,我可以看到我的更改。
我收到的电子邮件的标题中有此信息(实际名称已删除):
[构建失败] MyProjectName CI-MyProjectName:MyBranchName-MyProejctName-bf9524f9
========
我刚刚发现分支的根文件夹中有一个azure-pipelines.yml文件。内容与上述内容相符。这是否与设计人员管道竞争?
答案 0 :(得分:0)
Yaml管道的规模更好,您可以在一个中央位置对其进行管理,可以轻松地进行大量编辑,并且\或者可以使它们相互依赖以进行更多控制。只有当您有几个管道,或者只是开始使用整个管道时,Visual Designer才是好的。
Yaml管道不必一定在azure-pipelines.yml文件中。我将它们存储在单独的存储库中:)
答案 1 :(得分:0)
更新的评论:
此外,yaml中没有添加触发器的事实意味着每个新分支都将对构建进行排队。阅读有关yaml模式的“触发”信息,以获取更多了解。
您可以使用类似下面的内容;
trigger:
branches:
include:
- master
- develop
exclude:
- no-build-branch
鉴于未定义行为如下:
trigger:
branches:
include:
- '*'
这两个是相同的......
单击“编辑”时,Designer会选择azure-pipelines.yml。这是默认文件名,将自动提取该默认文件名以创建管道。
例如如果将管道源添加到azure-pipelines.yml并进行提交/推送,它将自动创建一个名为“ Repo_Name CI”的管道,并同时对构建进行排队。
根据yaml定义,任何新更改都将适用于它的优点。
您始终可以使用不同的名称,并可以添加任意数量的管道.....