1

我有一个项目,它是一个开源系统的插件。为了运行插件的 CI 构建,它需要安装到主开源系统的现有实例中。我基本上已经完成了这项工作,但是,主系统的安装过程又长又复杂,因此构建需要很长时间。设置也很尴尬,因为从 git 中检查插件总是首先发生,而它需要在主系统到位之后发生,以便正确的目录存在。我现在的解决方案是使用 shell 脚本进行安装,然后使用 Ant 任务进行构建,完全忽略内置的 VCS。不过,感觉很hacky。

想到了两个解决方案:

  1. 在构建目录中持久安装主系统,插件在构建开始时添加到该目录中,并在最后从该目录中删除。我在 Jenkins 上做了这个,它工作正常,但我们现在正在使用 TeamCity。
  2. 在两个 CI 项目之间有某种父子关系,以便构建主项目,然后触发在其中构建的插件项目。这将允许在需要时重建主系统,并避免在构建之间保持主系统安装干净的尴尬。

但是,我对 TeamCity 的了解还不够,不知道这是否可能。有没有人做过这样的事情?

4

1 回答 1

2

对于您的解决方案 2,您可以尝试使用“构建触发器”配置,“完成构建触发器”选项应该很好地解决您的父子关系。

在 TC 中,转到插件的构建配置,在“配置步骤”部分选择“构建触发器”(编号 5),然后选择“添加新构建触发器”并配置“完成构建触发器”,选择主系统的构建配置。

要在子目录中使用父目录,您需要使用“工件依赖关系”(请参阅​​“配置步骤”中的“依赖关系”部分,也可以在构建配置之间设置一些快照。

Artifact Dependencies:artifact Dependencies 为您提供了一种在另一个构建中使用一个构建的输出(工件)的便捷方法。配置工件依赖项后,必要的工件会在构建开始之前下载到代理。

快照依赖:通过设置一个构建(例如构建 B)对其他构建(构建 A)源的依赖,您可以确保构建 B 仅在它所依赖的(构建 A)运行并完成后启动

配置完成构建触发器:如果选定构建配置的构建完成,完成构建触发器触发当前构建配置的构建

于 2013-09-04T11:59:36.643 回答