【问题标题】:What is auto-creating new Build pipeline?什么是自动创建新的构建管道?
【发布时间】:2019-02-02 17:49:39
【问题描述】:

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

【问题讨论】:

标签: azure azure-devops azure-pipelines


【解决方案1】:

Yaml 管道的规模更大,您可以集中管理它们,您可以轻松地进行大规模编辑,并且\或者您可以让它们相互依赖以获得更多控制权。可视化设计器只有在您有几个管道或者您才刚刚开始使用整个管道时才适用。

Yaml 管道不必位于 azure-pipelines.yml 文件中。我将它们存储在一个单独的仓库中:)

【讨论】:

    【解决方案2】:

    更新评论:

    此外,您的 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 定义发挥其优点。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-12
      • 1970-01-01
      • 2020-12-12
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多