扩展TeamCity构建链

扩展TeamCity构建链,teamcity,pull-request,teamcity-9.0,build-chain,Teamcity,Pull Request,Teamcity 9.0,Build Chain,我们有许多项目是以同样的方式处理、构建和部署的,我们希望为所有这些项目建立一个统一的TeamCity构建链 我们的构建链应包含: 编译和测试拉请求并开发分支 SonarQube分析拉动请求 NPM发布并自动标记合并的拉入请求到开发中 所有项目均为NPM包,符合以下要求: 所需脚本:安装、测试、清理、生成 根目录中的package.json和sonar-project.properties 我们的想法是为SonarQube和NPM publish使用通用的参数化构建,因为它们对项目本身不可

我们有许多项目是以同样的方式处理、构建和部署的,我们希望为所有这些项目建立一个统一的TeamCity构建链

我们的构建链应包含:

  • 编译和测试拉请求并开发分支
  • SonarQube分析拉动请求
  • NPM发布并自动标记合并的拉入请求到开发中
所有项目均为NPM包,符合以下要求:

  • 所需脚本:安装、测试、清理、生成
  • 根目录中的package.json和sonar-project.properties
我们的想法是为SonarQube和NPM publish使用通用的参数化构建,因为它们对项目本身不可知,但看起来TeamCity不支持类似的东西,除非我们为每个项目复制链构建

理想情况下,它应该如下所示:

这里的问题是,如果我为build finish添加触发器,并为所有项目的SonarQube和NPM publish添加依赖项,那么将需要构建每个项目,而不仅仅是刚刚构建的项目

TeamCity通过能够复制构建配置提供了类似的功能:


我不希望有许多重复的构建,就像我不喜欢重复的代码一样。是否有办法创建通用构建链,或者我是否应该继续寻找生成通用构建链的脚本方式?

TeamCity issue tracker中有一个相关请求,您可以投票支持:。您需要快照依赖项吗?如果只配置工件依赖项,则不会重建整个链。您描述的第二种方法也会起作用。你可以使用TeamCity模板来简化设置。是的,我知道我可以使用模板和复制,但我们已经有20个库,我不希望复制和粘贴相同的链20倍。。。我尝试将包A、B和C添加到“SonarQube”和“NPM publish”中作为快照和工件依赖项,这里的问题是,它需要构建所有依赖项,并且还将尝试从所有依赖项(而不仅仅是触发构建的依赖项)复制工件,相互覆盖。。。一团糟。