我在GitHub中托管了一个开源存储库。 我已将其连接到Visual Studio Team Services。
我只想通过团队服务工作(因此,请连接到我的团队服务帐户和Visual Studio中的项目,而不是GitHub)。 GitHub repo应始终反映推送到VSTS的最新版本的代码。
问题是它只能部分起作用。
我设法将我的GitHub仓库连接到VSTS并导入代码。
我可以查看GitHub中对repo的 初始 提交。
我可以查看GitHub中每个提交的构建状态(绿色,红色,橙色)。
当我在GitHub中提交代码时,可以触发构建。
我可以通过Visual Studio连接,提交和触发构建。
然而
我无法在VSTS中查看在GitHub中完成的代码和提交
我不能在GitHub中查看在VSTS中完成的代码和提交
所以,似乎这些已连接但不同步。
我在这里查看了这篇文章。这是2岁,所以也许事情已经改变,因为它对我不起作用: How to synchronize VSTS and Github respositories when commits are made 还有这个Visual Studio Team Services - Sync w/ Github Repository
我没有得到的是,当触发构建时,它会提取最新的源代码,我可以看到我的上一次提交描述,但该文件未在VSTS中更新。
无论如何,我接着执行了anwser中描述的步骤,但它一直说“已经是最新的”。这个同步构建成功但没有任何改变 - 无论是在VSTS还是在GitHub中。
要让它们同步,我需要做什么?
答案 0 :(得分:2)
您只需要两个CI构建来将GitHub repo与VSTS git repo同步。如果您的GitHub repo和VSTS git repo未同步,请先同步,然后添加以下设置以便将来自动同步。
我无法在VSTS中看到在GitHub中完成的代码和提交
要解决此问题,您只需要GitHub repo 的 CI构建定义(似乎您已经拥有),当新的更改推送到GitHub仓库时,可以自动触发。
在GitHub CI构建定义中,添加 PowerShell任务以将新的更改从Github repo推送到VSTS git repo。 PowerShell脚本如下:
git checkout $(Build.SourceBranchName)
git remote add vsts https://Personal%20Access%20Token:PAT@account.visualstudio.com/project/_git/repo
git push vsts $(Build.SourceBranchName)
注意:
我无法在GitHub中看到在VSTS中完成的代码和提交
要解决此问题,您需要 VSTS git repo 的另一个CI构建定义,以便在将新更改推送到VSTS git repo后,将自动触发构建。
您可以通过PowerShell任务将更改从VSTS git repo推送到GitHub仓库:
git checkout $(Build.SourceBranchName)
git remote add github https://username:password@github.com/username/repo
git push github $(Build.SourceBranchName)
注意:您还应指定带有*
的分支过滤器,以匹配VSTS git repo的所有分支。并且还需要为PowerShell任务取消选择“标准错误时失败”选项。
答案 1 :(得分:1)
据我所知,您提供的屏幕截图中,您没有对您的VSTS存储库执行任何。您正在同步的回购来自GitHub。你正在推动和撤出的回购也是GitHub。
如果您没有克隆或以其他方式与您的VSTS存储库进行交互,那么您没有看到任何事情发生就不足为奇了。您希望构建使用VSTS存储库作为其源。然后,您在构建中运行的命令将从GitHub中提取最新的更改,并推送来自VSTS的最新更改。