【问题标题】:Build Feature Branch That Changed in Pipeline构建在管道中更改的功能分支
【发布时间】:2019-03-22 09:46:41
【问题描述】:

我正在使用 Azure DevOps,我们更改为分支模式,如下所示:

  • 后备箱
  • 分支机构
    • 功能1
      • MySolution.sln
    • 功能2
      • MySolution.sln
    • 功能3
      • MySolution.sln

如果我有一个在 Feature2 分支工作并检查更改的开发人员,我只希望在 DevOps 中构建 Feature2 分支。相反,它正在构建在 Branches 文件夹下找到的每个解决方案文件。

对于构建的 Get sources 部分,我有一个 $/My Team Project Name/Branches 的服务器路径。关于如何实现这一点的任何想法?

更新:我正在使用 TFSVC,并按照此链接中的说明(尽可能适用于 TFSVC):

https://docs.microsoft.com/en-us/azure/devops/pipelines/build/ci-build-git?view=vsts&tabs=designer

【问题讨论】:

  • 你能分享你的构建任务吗?

标签: azure-devops branch tfvc


【解决方案1】:

没有办法将构建任务配置为构建所有,Azure DevOps 将只构建签入的分支,有一个开放的User voice

您有一些解决方法,但在每个新分支中您都需要做一些工作:

  1. 克隆构建定义并更改源映射,每个分支的触发器的路径过滤器。

  2. 通过调用get changesets Rest API 添加一个 PowerShell 步骤/任务以获取最近的签入更改,然后使用 Logging Commands 将相关的解决方案/项目文件存储在一个变量中,然后构建这些解决方案/项目

  3. 在同一个构建定义上添加几个构建任务,每个分支一个任务,并在“控制选项”中选择“运行此任务”>“自定义条件”并输入: and(succeeded(), eq(variables['Build.Build.SourceBranchName'], 'Feature{x}')),现在 build tass 将只执行到签入的分支。

【讨论】:

    【解决方案2】:

    将您的构建步骤从 **\*.sln 更改为特定分支,或将您的工作区映射更改为仅限于您要构建的分支。

    【讨论】:

    • 但问题在于,每次我们为新功能添加新分支时,我都必须重新配置 DevOps。我认为 DevOps 足够聪明,可以确定哪个分支被更改并只构建该分支,而无需我在构建配置中指定它。
    • 你想错了。这不是 TFVC 的运作方式。
    猜你喜欢
    • 1970-01-01
    • 2020-03-16
    • 2021-12-12
    • 2021-08-02
    • 2020-01-31
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多