多种语言的持续集成

时间:2013-10-20 12:54:21

标签: jenkins continuous-integration

我想设置一个连续的集成系统,在提交或类似的触发器应该:

  • 如果需要,对fortran / C / C ++代码运行测试。
  • 使用cmake编译该代码。
  • 在rails app上运行测试。
  • 编译rails ap。
  • 重启服务器。

我在看詹金斯。它是这类工作的最佳选择吗?另外,使用bash脚本制作所有内容(如果可能)和使用jenkins之间的区别是什么?我问的不是因为我正在考虑使用脚本,而是为了更好地理解詹金斯。

3 个答案:

答案 0 :(得分:2)

听起来詹金斯肯定是一个合理的选择。除了能够将任意脚本作为构建步骤运行之外,还有大量plugins,例如,它提供了与cmake更好的集成。

即使您使用单个bash脚本来完成所有这些操作,在它之上使用Jenkins仍然有许多优点。您可以免费获得Web界面,电子邮件通知和构建历史记录。通过将您的测试“正确”地与Jenkins集成,您还可以获得图表,其中显示了一段时间内成功/失败的测试次数。

答案 1 :(得分:2)

我正在使用Jenkins进行java项目,不得不说它很容易配置。我曾经添加了许多插件来更好地配置构建步骤,但由于两个主要原因,往往会回到使用脚本语言进行构建和部署步骤。如果我有一个构建脚本,在不同的Jenkins服务器上配置相同的作业或者在需要时手动运行脚本更容易,并且构建配置不那么混乱(我仍然有一个maven作业,其中有超过50个构建后的步骤) 。第二个原因是,与在SVN中使用构建配置相比,在SVN中更新脚本更容易。

所以回答你的问题。我不知道它是否是“最好的”工具,但它对我来说已经足够了。关于脚本:使用每个工具来构建它。 Jenkins是一位荣耀的cron deamon,在展示分析方面有很多选择。人们使用它的学习曲线是最小的(即开始工作,看它是否失败。)配置Jenkins需要更多的学习,但是很容易设置简单的工作,然后去更复杂的任务。 / p>

答案 2 :(得分:1)

对于前四个活动,Jenkins将完成这项工作,而且现在是最好的选择,但对于重新启动服务器(实际上是“远程执行”)这样的事情,最好看看:

或:

Fabric(Python)或Capistrano(Ruby)等库也可能很有用。

相关问题