我正在使用TeamCity 2017.1.4以及GitVersion。Teamcity触发器在没有新提交的情况下建立在新分支上
teamcity项目本身由许多构建配置组成,其中第一个运行GitVersion,然后所有后续步骤对此步骤执行快照依赖关系并从其参数中提取版本。
在大多数情况下,这个工程很好,但是如果我们创建一个新的分支,例如。/release-foo并推送它,teamcity将不会触发构建,因为它之前已经构建了commit sha,不幸的是我们需要它再次触发,因为即使提交没有改变,在新分支中意味着它会得到一个不同的GitVersion编号。
我试着强制GitVersion构建配置上的快照依赖关系始终被重建,但是这看起来有点丑陋,因为这种方式打破了所有其他场景,这不是问题。我也知道我可以手动触发构建告诉它重建所有的依赖关系,它会工作,但是我很好奇,如果有一个更好的方法来让teamcity自动触发构建一个分支上的提交,如果该分支没有以前存在,或者事实上我可以用任何其他方式来处理这个问题
我不同意这个说法,“即使提交没有改变在新的分支意味着它会得到不同的GitVersion编号”。如果您在基于特定提交的Git中创建新分支,那么新分支将使用旧的提交#并且没有新分支。这是Git知道特定分支所在的唯一途径。 – Nishit
我不是指git commit sha,而是GitVersion应用程序生成的GitVersion编号 –
经过多一点研究,似乎这可能是teamcity中的一个错误,或者至少在某种程度上与设置有关teamcity.buildRevisions.detectUnknownCommitMerge = true teamcity.vcsTrigger.runBuildOnSameRevisionInEveryBranch = true –