我们有许多以相同方式处理、构建和部署的项目,我们希望为所有项目建立统一的 TeamCity 构建链。
我们的构建链应该包含:
- 拉取请求和开发分支的编译和测试。
- 拉取请求的 SonarQube 分析。
- NPM 发布和自动标记合并拉取请求到开发。
所有项目都是符合以下要求的 NPM 包:
- 所需脚本:安装、测试、清理、构建
- 根目录中的 package.json 和 sonar-project.properties
我们的想法是为 SonarQube 和 NPM 发布使用通用参数化构建,因为它们与项目本身无关,但看起来 TeamCity 不支持这样的东西,除非我们为每个项目复制链构建。
理想情况下,它应该看起来像这样:
这里的问题是,如果我为构建完成添加触发器并为所有项目添加对 SonarQube 和 NPM 发布的依赖项,它将需要构建每个项目,而不仅仅是刚刚构建的项目。
TeamCity 通过复制构建配置提供了类似的功能:
我不希望有许多重复的构建,就像我不喜欢重复的代码一样。有没有办法创建通用构建链,或者我应该继续寻找生成后者的脚本方式?