我有一个CI构建,从Github中提取功能分支,并使用基于项目、分支和内部版本号的文件夹命名约定,将它们构建/打包到本地文件夹中。
对于命名分支(feature1、feature2),这非常有效。
问题是,当我向主服务器提交时,TeamCity将teamcity.build.branch公开为<default>
-这意味着当构建步骤展开时
E:\Packages\MyProject\%teamcity.build.branch%\
它以E:\Packages\MyProject\<default>
结束--这会使构建步骤崩溃,因为它不是一个有效的Windows路径。
我可以在完全限定的构建参数中看到主分支名称:
teamcity.build.branch <default>
teamcity.build.checkoutDir C:\TeamCity\BuildAgents\agent-mulder\work\2151838a7933464d
teamcity.build.default.checkoutDir 2151838a7933464d
teamcity.build.id 16347
teamcity.build.vcs.branch.github_myproject refs/heads/master
但理想情况下,我需要在构建步骤中使用主作为teamcity.build.branch。
我可以在运行时转换参数吗?是否覆盖行为?我甚至尝试将VCS分支名称设置为DO_NOT_USE,希望“主”不再与默认值匹配-但这似乎也不起作用。
发布于 2013-08-13 21:55:55
在teamcity 7中,返回开发的只是简单的%vcsroot.branch%。
在我的情况下,我有
%MajorVersion%.%MinorVersion%.%PatchVersion%-%vcsroot.branch%
它们都是在构建参数中设置的。数字格式是%BuildFormatSemVer%,这是上面和的内容。{0}
%BuildFormatSemVer%.{0}
它会返回
#1.0.0-develop.4
发布于 2012-09-09 16:36:39
不是很理想,但我可以通过在git中创建一个名为" TeamCity“的新分支并将其设置为TeamCity中的默认分支来解决它,它似乎要求分支确实存在,因为当我创建分支时它可以工作,但当你输入一个假名字时却没有。
希望他们真的解决了这个问题,因为这绝对是一个黑客攻击。
发布于 2013-04-10 22:18:09
在创建管道时,我们已经多次遇到这个问题。当试图使用Gitflow工作流自动构建功能分支和发布分支时,这一点最为明显。我们所能做的就是使用teamcity.build.vcs.branch.github_myproject
和sed
中的正则表达式在我们想要使用的时候清理字符串。这主要是为了调试目的而给工件添加水印。
更大的问题是,至少对我们来说,TeamCity 7.1.1版本不会自动为任何不是VCS根目录中的默认构建的内容启动依赖构建。显然,这是一个巨大的痛点,因为我们现在必须在工具中手动单击。除了git中的钩子之外,我们还没有想出一种干净的方法来绕过这个问题,这些钩子使用HTTP API调用正确的构建步骤。
https://stackoverflow.com/questions/12195563
复制相似问题