TeamCity可以将成功构建推送到git存储库吗?
我无法在TeamCity中看到具体的构建步骤来执行此操作 我使用TeamCity版本7.1.1
谢谢,亨里克
更新:
好的,谢谢你的回答, 我发现它有点复杂。 我发现我可以简单地将成功构建的标签推回到我的全局存储库,TeamCity从该存储库获取构建数据。我可以从中提取更改,看看上次提交是否成功。
如果TeamCity为这种工作流程提供了一个简单的选项,我会很高兴的!
如果每个开发人员都可以从仅在构建成功时更新的repo中提取,或者我在这里错了,那将是非常棒的吗?
答案 0 :(得分:6)
您可以让TeamCity执行一个随后调用git push
的shell脚本(使用适当的参数,例如git push <repository>
来推送到另一个存储库)。请确保git
不需要针对推送操作的交互式身份验证。
可以在此处找到相关示例(使用git push
部署到Heroku):http://blog.carbonfive.com/2010/08/06/deploying-to-heroku-from-teamcity/。
答案 1 :(得分:4)
我终于成功了!
您必须在teamcity项目中添加构建参数:
name= env.PATH
value= C:\Program Files (x86)\Git\cmd
然后使用自定义脚本添加新的命令行构建步骤:
call git push "C:\Gruene Git Repos\TeamCityApp" master
“通话”这个词很重要!
感谢您的帮助! 亨利克
答案 2 :(得分:2)
有一段时间,TeamCity支持VCS标签,这允许您的VCS Root用户(如果它具有写入权限)标记刚刚使用该版本或TeamCity知道的任何其他内容构建的提交哈希(请参阅参数引用的完整列表)在TeamCity wiki中。
如另一个答案中所述,TeamCity中可用的自动合并功能将自动执行从指定的分支列表(启用通配符)合并到请求的分支,它将监视和构建,并且只有在成功时才合并它们。
自动合并功能可能很好,但是如果你没有良好的测试覆盖率,它也可能是危险的,因为开发人员可能会破坏没有测试的东西,这会导致你的问题代码漫长的道路。防止这种情况的一种方法是每次项目构建时都要求创建/运行+2测试(可在TeamCity中配置)。这些警告在之前链接的文章中提到,它宣布了自动合并功能。
我们遇到了一个与合并无直接关系的类似问题,但要求将工作中的一些更改推出超出&#34;轻量级标签&#34; (对于Git至少)如果你使用VCS标签(可怕的名字),TeamCity会添加。
我们最终做的是:
答案 3 :(得分:0)
我的解决方案可能是愚蠢的,但很简单。 步骤如下:
从heroku git存储库中克隆你的heroku 它将创建你的heroku app文件夹。
heroku git:clone -a {app-name}
将需要更新的文件复制到heroku
xcopy client "{app-name}/client" /e/i/h/y
xcopy server "{app-name}/server" /e/i/h/y
xcopy imports "{app-name}/imports" /e/i/h/y
git add。
cd {app-name} && git add .
git commit
cd {app-name} && git commit --message 'ok'
推送到heroku
cd {app-name} && git push heroku master