我们有一种情况,我们有许多构建同时运行,但我们需要序列化结果。在构建中的各个检查点,我们基本上说"如果有什么东西进入了主分支,失败了这个" ...我们真正想要做的是说"如果有什么东西进入主分支,那就回到第一步"。
有没有办法让teamcity去另一个构建步骤?
即在构建中创建一个循环? (没有将整个构建整合到一个步骤中)
答案 0 :(得分:1)
他们允许您指定项目应该运行的顺序,这样如果您有项目A,B和C,B的触发器是成功完成A,C的触发器是成功的完成B.
A => B => C
他们也让你分叉,以便A的成功可以触发B& B和B都在B& C完成:
B
A => => D
C
答案 1 :(得分:0)
如果你想在A => B =>中进行一种机制,您可以尝试在Build链中执行此操作。
A是你的第一个版本。 B是你的测试版本。 C是您的依赖构建。
B取决于A,C取决于B
您需要创建一个构建B来轮询存储库并检查构建A启动后是否有任何更改。如果有任何更改,它将失败,因此不会触发构建C并且构建链失败。但是,由于新的更改,构建A将被触发并创建整个新构建链。
您还可以更改vcs轮询以设置静默期。例如,您可以将构建更改为在触发之前等待5分钟,以检查是否有任何新的更改。如果有新的更改,则重置静默期
更好的方法是在比构建时间更长的时间内轮询存储库。例如,如果您的总构建时间是10分钟,则以15分钟的间隔轮询存储库。然而,这取决于您想要达到的目标,可能不符合您的目的
您还可以使用Teamcity Shared resources确保在任何给定时间只有一个目标正在运行