对于我们的企业应用程序,我们在AccuRev中有分层流(开发人员推广到Integration流,它促进质量保证流,促进生产流)。应用程序的每个主要组件都有自己的分层流(例如:有Windows客户端集成流,Windows客户端质量保证流,数据访问服务集成流,数据访问服务质量保证流等)。 / p>
我负责为TeamCity中的整个应用程序设置自动构建。到目前为止,我已经为每个主要组件创建了一个单独的构建配置(例如:Windows客户端构建配置)。现在,这些配置来自上述集成流。它工作得很漂亮。
但是,我们想要做的是将构建配置切换为从不同层中提取。换句话说,如果我们想要运行Windows客户端的“集成”版本,则构建配置将从Windows客户端集成流中提取。但是,在质量保证构建的情况下,它将从质量保证流中获取。
据我所知,实现此目的的唯一方法是为每个层创建单独的构建配置(例如:“Windows客户端构建配置(质量保证)”)。
有更简单的方法吗?
或者我设置自动构建的方式是否存在根本性的错误,这阻碍了我实现这一目标?
答案 0 :(得分:1)
我没有使用过AccuRev,但我假设这些流等同于其他版本控制系统中的分支。
我认为你在这里走在正确的轨道上。为每个层/平台提供单独的构建配置的优点是,一旦完成设置,您只需单击按钮即可构建其中任何一个,无需进一步配置。你可以在没有每个层的单独构建配置的情况下完成它,但是你必须弄乱构建配置或使用特定属性集的自定义构建(直接从TeamCity项目页面运行自定义构建很容易!)每次你想要建立。
我可能会做的就是为每个平台/层设置单独的构建配置,并将它们全部基于单个模板,使用配置参数来处理平台和层的设置。这为您提供了单独配置的好处(一键构建,如果需要,可单独进行版本控制等),同时通过将配置隔离到模板来降低复杂性和维护要求。