【问题标题】:Azure Pipelines to build multiple solutions in a single repositoryAzure Pipelines 在单个存储库中构建多个解决方案
【发布时间】:2019-02-13 09:34:21
【问题描述】:

是否可以创建一个 YAML 文件来在我的存储库中构建多个项目?

我有一个包含 12 个解决方案的存储库,每个解决方案中至少包含 6 个项目。存储库非常复杂,不谈为什么要这样开发,每个解决方案都是一个更大产品的依赖项。

是否可以使用单个 YAML 文件构建所有这些项目,而不是为每个项目创建一个构建管道?它们需要按特定顺序构建,因为它们相互依赖。

在我们的本地 TeamCity 环境中,我们利用 .msbuild 文件来执行此操作,但我在 Azure DevOps 中找不到执行此操作的方法

【问题讨论】:

  • 只是为了澄清。您希望相同的基本构建管道发生在多个存储库中吗?
  • 为什么不向每个解决方案添加 6 个 MSBuild 任务?

标签: azure-devops azure-pipelines-build-task


【解决方案1】:

更好的问题是为什么?如果您设法使用 if 或类似的东西来做到这一点,那么您的 yaml 文件将很大且无法维护。

为什么不为每个构建只使用一个文件?您可以让其中许多都针对不同的文件...

如果你的架构师发疯了,你可以使用这样的东西:

- ${{ if eq(Build.DefinitionName, 'something') }}:
  - task: something
    xxx

你会在文件中有几个这样的,每个解决方案一个。但这是一种非常糟糕的方法。

【讨论】:

  • 首先,我们不想浪费太多精力在 Azure DevOps 上重现我们的 TC 环境,因为这是一个概念证明。我更喜欢将每个解决方案作为构建,以便我可以单独管理 docker 部署,但是,项目架构师决定在一次运行中包含解决方案构建。根据我的调查,这不是一个可行的解决方案,但我想提供一个支持个人构建的具体论据
  • 他很生气,但我向他提出了“为什么”的问题,他去了......嗯,也许不是最好的方法:D。我们已经将我们的组织拆分为各个单独的项目,并为每个项目构建了一个版本。谢谢。
【解决方案2】:

是的,您可以使用 YAML 方法进行构建。但是 YAML 脚本会很大并且难以理解依赖关系。如果您是系统新手,您始终可以使用 Designer 方法并提取系统生成的 YAML。这是YAML schema 参考,可能会对您有所帮助!!!

【讨论】:

    猜你喜欢
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 2018-01-01
    • 2015-12-21
    • 2013-01-31
    • 1970-01-01
    相关资源
    最近更新 更多