1

我正在开发我的第一个rails应用程序,并且正在努力寻找一种高效且干净的解决方案来执行自动签出和部署。Rails中的自动化部署

到目前为止,我已经看过CruiseControl.rb(已经熟悉CruiseControl.NET)和Capistrano。不幸的是,除非我错过了一些东西,否则他们每个人只能做到我想要的大约一半(每个人做不同的一半)。

为了什么我迄今所看到的:

CruiseControl的

  • 优势
    • 自动建立在基于资源库检出提交
    • 也可以运行单元/功能测试,并报告
  • Weaknesse小号
    • 没有内置的部署机制(最好我能找到到目前为止是写自己的bash脚本)

Capistrano的

  • 优势
    • 专为部署
  • 弱点
    • 必须通过命令(即,没有做自动结帐时提交)

我发现的方式,我可以串两人在一起 - 即有CruiseControl的平更改资料库,做到在提交时检出,运行测试等等,然后在完成部署时(即使Capistrano也要执行存储库检出),然后打电话给Capistrano。

基本上,当一切都说过和做过,我想有设置三个项目:

  • 开发:结帐/部署是完全没有接触。当某人提交一个文件时,某些东西检查出来,运行测试,部署更改并报告回来
  • 阶段:签出/部署需要点击按钮
  • Prod:按钮点击会执行标记签出或移动来自舞台的文件

我在.NET世界中使用了CruiseControl.NET和MSBuild的组合,并且它非常简单。我猜想这也是ruby部署世界中的一种常见模式,但我很容易被误解。

回答

1

反正我会用两个系统来构建和部署。至少有两个原因:您应该可以单独运行它,并且您应该有两个配置文件用于部署和一个用于构建。但是你可以很容易地将两个系统粘合在一起。

只需创建一个简单的capistrano任务,即可测试并向您报告。您可以使用“运行”命令来执行任何您想要的操作。

如果你不想要任何命令行工具,那么2年前就有webistrano。

如果您使用git作为存储库,可以使用类似http://github.com/benschwarz/gitnotify/tree/master的东西来触发构建部署。

3

我会给Hudson试一试(免费和开源)。我开始使用CruiseControl,但每次需要更改设置或添加项目时都不得不重新学习XML配置。然后我开始使用哈德森,从不回头。哈德森通过网络或多或少完全可配置。它最初是Java的持续集成工具,但对其他开发堆栈(如.NET和Ruby on Rails)具有plugins。有一个Rake插件。如果这不起作用,可以将其配置为在运行Rake构建/测试之后执行任意命令行。

我还要补充这是非常容易得到哈德森去:

java -jar hudson.war

也可以删除任何servlet容器战争。