【问题标题】:Azure DevOps build from dynamic repo nameAzure DevOps 从动态存储库名称构建
【发布时间】:2020-11-07 07:12:03
【问题描述】:

有人知道是否可以传入回购名称/基于动态回购名称构建?这将允许我们在不同的分支之间共享相同的构建定义,在创建功能分支时减少定义等。

使用 TFVC 存储库时,我们会将不同的版本存储在同一个存储库中,但路径不同。我们可以通过更改源路径(例如 $/product/$(release)/......)在不同的版本/FB 中重用相同的构建定义。

看起来 Git 喜欢将 repo 硬编码到构建中(因此下拉菜单 - 无法插入变量。

虽然该问题针对的是本地 Azure DevOps,但如果在托管环境中可行,了解一下会很有帮助。

【问题讨论】:

  • 不完全遵循您的问题。当您使用 GIT 时,您正在为 repo 配置构建管道。如果您要创建多个分支(开发、Release\1.0、Release\1.1 等),则构建定义将应用于您创建的任何分支。您可以将 CI 触发器设置为从“*”开始,以便推送任何分支都会启动构建管道。
  • 完美!这就是我所追求的。我认为获取来源仅限于它的设置 - 即。掌握。我分支,修改了分支,设置 CI 源来修改有问题的分支,它工作了。谢谢!

标签: azure-devops azure-devops-server azure-devops-server-2020


【解决方案1】:

我建议使用 YAML 构建模板。默认情况下,这些签出“self”并存储在 repo 中。这样他们就可以在分支、分支等上工作。每个分支也可以包含对构建过程的调整。

对于基于“旧”用户界面的构建,这是不可能的。

【讨论】:

    【解决方案2】:

    你要找的其实是两件事:

    • templates - 这允许您在不同的管道中重用定义
    • triggers - 这允许您在不同分支上发生提交时触发管道

    【讨论】:

    • 触发器做到了。我错误地假设如果为 master 设置了构建,它只会监视 master。一旦我分支并设置 CI 来监控两个分支(master,r1),构建就开始了,并收集了正确的来源。
    • 酷。还有什么值得知道的。如果您在某些功能分支上对构建定义进行更改,它将仅适用于该功能分支,而所有分支都保留原始定义,直到您将其合并。如果我的回复对您有帮助,您可以考虑点赞吗?
    【解决方案3】:

    看起来Task Groups 解决了这个需求(大部分)。我希望有一个可以跨多个分支共享的构建定义;虽然这在托管模型上似乎是可能的,但在本地是不同的。

    我可以克隆一个构建(或使用模板),以便在 repo/branch 中有一个入口点来获取源代码,然后将工作交给一个共同的任务组。如果我需要修改多个分支的构建过程,只需修改任务组即可。

    【讨论】:

    • 如果您是从头开始,我会考虑按照 jesshouwing 的建议尝试实施 YAML 构建。不确定您是哪个本地版本,但我很确定它在 AzDo Server 2019 中。如果不是,我几乎肯定服务器 2020 中有一个 RC1,我几乎肯定会在最近进行大部分改进。跨度>
    猜你喜欢
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    相关资源
    最近更新 更多