如何使用 TFS CI 构建定义签入 BitBucket 存储库中的文件?

Posted

技术标签:

【中文标题】如何使用 TFS CI 构建定义签入 BitBucket 存储库中的文件?【英文标题】:How to Check-in a file in BitBucket Repository with TFS CI Build Definition? 【发布时间】:2020-11-06 08:20:24 【问题描述】:

情况:

我是 BitBucket 的新手。 我目前在 BitBucket 中创建了一个存储库,并且我有一个 TFS CI 构建定义,我通过端点链接了 BitBucket 存储库。

TFS CI 构建定义基本上会下载该存储库中签入的 Readme.md 文件。

问题一:

我想知道如何使用 TFS CI Build 将任何文件\文件夹上传\签入到存在于 Bitbucket 上的存储库中?

问题 2:

在 CI 构建的触发器选项中,我看不到门控触发器选项,就像我使用 TFS 作为源代码存储库时那样。

创建批处理文件后,

批处理文件脚本 - 如果手动触发它可以成功,但不适用于 TFS 构建。

在执行批处理文件时卡在 git push 命令的 TFS 构建管道。

【问题讨论】:

签入和“门控”触发它用于 TFVC 代码。 Bitbucket 是 Git 存储库,完全不同。 那么,这是否意味着无法通过 TFS 构建将代码推送到 Bitbucket Repo?如果可能的话,我该怎么做呢? 你可以做到。但是为什么要从构建中推送代码呢?不是最佳做法。 实际上,我们将使用 bitbucket 上的那些存储库来推送任何代码,但要签入该存储库中的一些配置文件。这将在当前不支持 TFS 源代码存储库的另一个域上使用和下载。但是,如果可以通过 TFS 将任何文件推送到 bitbucket 存储库,请告诉我如何操作,是否有任何链接可以参考? 【参考方案1】:

我们可以使用 git 命令来推送文件。 步骤:

    创建构建管道

    添加任务命令行并输入代码。详情请参考doc。

     git config --global user.email ""
     git config --global user.name ""
     git init
     git remote add BitBucket repo git URL
     git checkout -b branch name
     git add file path
     git commit -m "xxx"
     git remote add origin BitBucket repo git URL
     git push -u origin branch name
    

【讨论】:

我创建了一个类似的批处理文件,当手动执行时,它会成功提交并将文件推送到 bitbucket repo,但是当通过构建管道调用相同的批处理文件时,它会卡在 git push 命令上几个小时并且不会't 将文件推送到 bitbucket。我附上了上面 TFS 构建和批处理脚本的屏幕截图,你知道它卡在 Git 推送的原因是什么吗? 请将变量 system.debug 设置为 true,然后与我们分享最新的日志截图和构建定义。我会检查它并更新答案以帮助您解决问题。另外,还有一个similar issue,也请查收。

以上是关于如何使用 TFS CI 构建定义签入 BitBucket 存储库中的文件?的主要内容,如果未能解决你的问题,请参考以下文章

TFS 2013 使用动态解决方案计数构建定义

使用 tfs 在 CI 中检查程序集信息

TFS 2015:如何排除某些文件夹触发使用 Git 构建

如何构建仅签入代码文件以及如何仅签入该构建的 tfs 中的代码工件?

使用 TFS 在 CI 构建上输出构建定义 bin 文件夹

如何从詹金斯工作区将EAR签入到TFS