如何配置Teamcity来构建一个项目,该项目是一个不同项目的插件?

时间:2013-09-04 11:50:34

标签: continuous-integration teamcity

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

我想到了两个解决方案:

  1. 在构建目录中持续安装主系统,在构建开始时将插件添加到该目录中,并从最后删除。我没有这个詹金斯,它工作正常,但我们现在正在使用TeamCity。
  2. 在两个CI项目之间建立某种父 - chid关系,以便构建主项目,然后触发插件,它就是在其中构建的。这样就可以在需要的时候重建主要版本,并避免在构建之间保持主系统安装的尴尬。
  3. 但是,我对TeamCity不太了解是否有可能。有没有人曾经做过这样的事情?

1 个答案:

答案 0 :(得分:2)

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

在TC中,转到插件的构建配置,在“Configuration Steps”部分选择“Build Triggers”(编号5),然后选择“Add New Build Trigger”并配置“Finish Build Trigger”选择主系统的构建配置。

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

  

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

     

Snapshot Dependencies:通过在其他构建(构建A)源上设置构建(例如构建B)的依赖关系,可以确保构建B仅在它依赖的构建(构建A)之后才开始。跑完了

     

Configuring Finish Build Trigger:   如果完成所选构建配置的构建,则完成构建触发器会触发当前构建配置的构建