【问题标题】:Azure Pipeline checkout same repo multiple timesAzure Pipeline 多次签出相同的存储库
【发布时间】:2023-01-25 19:21:56
【问题描述】:

我已经为此苦苦思索了好几天。 基本上,这是我的设置:

  • 我有一个分为 10-15 个阶段的主管道,您可以选择要运行的阶段。
  • 所有阶段都依赖于 1 个 Powershell 阶段,该阶段执行一些工作并设置一些变量
  • 每个阶段(Powershell 除外)调用一个模板,该模板调用另一个 BIG 模板(某些阶段可能调用相同的 BIG 模板或不同的模板)
  • 我的问题在于“结帐”步骤:
- checkout: git://Project/${{parameters.RepositoryToCheckOut}}@$(Build.SourceBranch)
   path: PathSpecified

分支变量和存储库变量都需要在某种程度上是动态的。

如果选择了两个或多个阶段,则会多次执行此步骤,从而在 Azure DevOps 上提示此错误:

An error occurred while loading the YAML build pipeline. An item with the same key has already been added.

我在一些文件上读到这是某种键/值问题,我不知道如何克服它。我想要避免从使用简单的 bash 步骤和手动签出,因为这些文件非常重要并且没有错误余地。

什么可以解决这个问题?

我尝试使用参数和编译时变量,但没有任何效果。我仍然有同样的错误。

【问题讨论】:

  • 似乎没有必要多次检查回购协议。检查一次,做你需要做的事情,发布构建工件,然后在后续阶段使用你的工件。
  • 问题是后续阶段与多个其他代理一起运行,因此结帐需要多次完成。无论如何,我们通过这样做解决了这个问题:- checkout: git://ProjectName/${{parameters.RepositoryToCheckout}}@${{ variables['Build.SourceBranch'] }}

标签: git azure azure-devops azure-pipelines


【解决方案1】:

使用这个解决了问题:

- checkout: git://ProjectName/${{parameters.RepositoryToCheckout}}@${{ variables['Build.SourceBranch'] }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 2020-08-26
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    相关资源
    最近更新 更多