我正在尝试配置要构建的TeamCity项目。我们有CI构建和QA构建。
我们希望更改不会出现在QA构建的待处理列表中,直到CI构建成功完成。
我们希望手动触发QA版本,正如目前所发生的那样。
我已经研究过创建构建依赖关系和构建链。快照依赖项的文档说:
排队的构建在完成所有快照依赖关系构建之后才会启动。根据快照依赖项选项和依赖关系构建的状态,构建可以启动或仅标记为无法启动而不运行;
这并未说明在依赖(CI)构建完成之前,触发构建的更改是否会出现在QA构建的挂起更改中。
我考虑使用门控签入,以便甚至不提交任何重大更改,但这似乎取决于IDE。我们目前使用git,所以我认为我们不能这样做。
我的问题有两个: 1.使用快照依赖项是否足够和适当,以防止下一个QA构建可用的重大更改? 2.如果不是,那么实现这一目标的更好方法是什么。
提前感谢您的帮助。
答案 0 :(得分:0)
我的理解是:
您的更改似乎可用于下一个QA构建,但如果设置了依赖项,以致QA构建必须使用先前成功的CI构建中的源,那么QA构建将无法成功完成,除非CI构建也正在过去。当您手动触发QA构建时,它将查看是否存在具有相同源的有效且可用的CI构建,并且是否将启动QA构建。如果没有,那么它将触发一个,以便它可以获得它所需的源。如果CI构建失败,那么构建链将失败,QA构建将失败。
可以对您的git存储库使用gated checkins,请参阅my answer here,这将确保QA版本可以在当前的#head;'绿色'存储库