【问题标题】:How can I create build pipeline with Yaml using TFVC?如何使用 TFVC 使用 Yaml 创建构建管道?
【发布时间】:2020-01-07 12:58:40
【问题描述】:

需要使用 TFVC 存储库使用 yaml 创建 CICD 管道。

【问题讨论】:

  • 您能否edit 您的问题并尝试更详细地描述您预期的 CICD 管道?
  • 事情进展如何?考虑接受一个您认为对您有帮助的答案,以便其他人可以参考该答案。

标签: azure-devops yaml azure-pipelines tfsbuild tfvc


【解决方案1】:

请参阅此文档:Two types of repositories the pipelines supported

到目前为止,YAML 仅支持 git 类型的存储库,我们还没有扩展功能和 YAML 语法以支持 YAML for TFVC 存储库。

由于只有一种解决方法是将您的存储库从 TFVC 迁移到 Git,但我不确定您进行迁移是否可行,尤其是在您的存储库有点旧的情况下。如果 repos 有点旧,迁移会使其丢失许多历史记录,包括旧的提交和构建。

在我们的官方建议论坛上,有很多用户和你有相同的需求:Make YAML support TFVC。您可以在那里投票和评论您的需求。我们的产品组团队和相应的 PM 将审查这些建议,并考虑将其作为开发计划,为用户带来更灵活的体验。

【讨论】:

    【解决方案2】:

    YAML 管道仅受 GIT 存储库支持,尽管 Microsoft 并未对此进行详细记录。您将无法使用 YAML 在 TFVC 中构建管道。虽然不是每个人都可以选择,但您可以考虑将 TFVC 项目转换为 GIT 存储库。

    Azure DevOps TFVC to GIT Conversion

    【讨论】:

      【解决方案3】:

      不确定这是否符合您的需求:您还可以从 git repo 运行管道并通过 powershell 任务和 REST 下载 tf vc 源代码(请参阅 Azure pipeline build bring TFVC project references into git build)。

      对于 CI 触发器:

      • 创建经典管道并适当配置 TFVC 触发器
      • 通过 REST e 触发您的 yaml 管道。 G。在PowerShell中:
          $createReleaseBody = 
          @"
          {
                "definition": {
                    "id": $YamlPipelineId
                },
                "sourceBranch": "$branch",
                "requestedFor": "$authorId",
                "parameters": "{ tfvcChangesetId: $(BUILD.SOURCEVERSION), YamlTriggerBuildId: $(Build.BuildId) }",
          }
          "@
        
          $triggeredBuild = Invoke-RestMethod -Uri "https://*******.com/tfs/*****/_apis/build/builds?api-version=6.0" -Method post -Headers $AzureDevOpsAuthenicationHeader -Body $createReleaseBody -ContentType 'application/json'
        
          

      YAML 管道:

      • 创建一个仅包含管道代码(即 *.yml 文件)的 git 存储库
      • 为您在 TFS 中的每个分支在 git 中创建一个分支(将使用上面的 powershell sn-p 触发该分支)
      • 根据上面请求正文中的参数添加变量(在webui中)
      • 使用给定的 $(tfvcChangesetId) 下载 TFVC 源
      • 就我而言,TFVC 下载任务的功能不足以处理我们的复杂映射。因此,我使用了一个冗长的 powershell 脚本,它直接与 tf.exe 一起工作。

      两年后的经验:

      • 触发机制(经典 + REST)经验证,运行良好
      • 在 yaml 管道中开发新功能很简单,而且效果很好
      • 唯一的缺点:合并我们 10 多个分支机构的工作很烦人

      提示:

      • 根据您的 yaml 管道的结果,用“成功”、“失败”、“取消”标记经典构建
      • 向您的 YAML 构建添加 Markdown 构建摘要,其中包含有关 TFVC 签入的详细信息
      • 修改经典管道中显示的分支,使其更直观

      【讨论】:

        猜你喜欢
        • 2019-04-06
        • 2020-08-31
        • 2023-03-14
        • 2021-10-15
        • 2019-03-26
        • 2019-10-04
        • 2023-03-17
        • 2021-05-03
        • 1970-01-01
        相关资源
        最近更新 更多