什么是自动创建新的构建管道?

时间:2019-02-02 17:49:40

标签: azure azure-devops azure-pipelines

对于一个给定的项目,我有四个构建管道,每个管道触发器都启用了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文件。内容与上述内容相符。这是否与设计人员管道竞争?

2 个答案:

答案 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定义,任何新更改都将适用于它的优点。

     

您始终可以使用不同的名称,并可以添加任意数量的管道.....