我有一个项目,它是一个开源系统的插件。为了运行插件的 CI 构建,它需要安装到主开源系统的现有实例中。我基本上已经完成了这项工作,但是,主系统的安装过程又长又复杂,因此构建需要很长时间。设置也很尴尬,因为从 git 中检查插件总是首先发生,而它需要在主系统到位之后发生,以便正确的目录存在。我现在的解决方案是使用 shell 脚本进行安装,然后使用 Ant 任务进行构建,完全忽略内置的 VCS。不过,感觉很hacky。
想到了两个解决方案:
- 在构建目录中持久安装主系统,插件在构建开始时添加到该目录中,并在最后从该目录中删除。我在 Jenkins 上做了这个,它工作正常,但我们现在正在使用 TeamCity。
- 在两个 CI 项目之间有某种父子关系,以便构建主项目,然后触发在其中构建的插件项目。这将允许在需要时重建主系统,并避免在构建之间保持主系统安装干净的尴尬。
但是,我对 TeamCity 的了解还不够,不知道这是否可能。有没有人做过这样的事情?