【问题标题】:VSTS build from multiple repositoriesVSTS 从多个存储库构建
【发布时间】:2018-09-09 07:58:14
【问题描述】:

我有两个存储库 - 一个在 TFVC 中,另一个在 Git 中。将它们分开有特定的技术原因。

TFVC 中的代码是基于私有构建代理构建的,而 Git 中的代码是基于托管代理构建的。所以目前我有两个独立的构建,它们的结果一起部署在一个发布定义中。

我正在考虑创建可以从两个存储库中获取源代码的构建,以便我有一个构建定义来管理。

有没有办法做到这一点?

【问题讨论】:

    标签: git azure-devops azure-pipelines tfvc


    【解决方案1】:

    目前,无法在获取源步骤中指定多个存储库。 并且有一个用户声音Allow TFS build to depend on multiple repositories 建议类似的功能,你可以投票和跟进。

    目前的解决方法是手动从其他仓库获取文件

    例如,如果你在Get sources步骤中指定了TFVC repo,那么你可以在任务的开头添加一个PowerShell任务,并通过git clone <repo URL>等克隆另一个git repo。

    【讨论】:

    【解决方案2】:

    TFVC

    Marina 的答案也是可能的。默认情况下将构建定义绑定到 Git 后,您可以添加一个 powershell 脚本来映射工作区并获取源代码:

    tf workspace /new /noprompt /location:local /permission:private <name>
    tf workfold /map $/Server/Path "$(Agent.BuildDirectory)\tfvc" /workspace:<name>
    tf get "$(Agent.BuildDirectory)\tfvc"
    

    然后添加一个“始终运行任务”来清理工作区:

    tf workspace /delete <name>
    rd /s /q "$(Agent.BuildDirectory)\tfvc"
    

    下载工件

    另一种选择是使用下载 Artefact 任务从以下扩展下载工件:TFS Artifacts for Release Management

    或者 VSTS 附带的 Download Artifact 任务,尽管它需要一个指向构建定义的链接才能下载,这意味着您可以在 Git 或 TFVC 上构建源代码,或者只是附加源代码目录,然后在“其他”构建中获取那些。

    【讨论】:

      【解决方案3】:

      您真的想同时构建两个存储库并将构建工件混合在一起吗?还是您只想使用相同的定义来定位不同的来源?

      如果您真的想要第一个,您可以在构建过程中编写源代码获取脚本,正如其他答案所指出的那样。但是,如果在托管上构建 Git 并在私有上构建 TFVC 是一项硬性要求,那么同时构建两组源代码将会失败。

      我建议创建一个 Task Group 来处理你们共同的任务。然后创建引用任务组的单独构建定义。

      【讨论】:

      • 不错的任务组提示,将尝试将它用于多个存储库,因为无法为同一个 vsts 项目下的存储库创建一个典型的构建
      猜你喜欢
      • 2019-01-07
      • 2018-05-12
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-28
      • 2018-04-30
      相关资源
      最近更新 更多