我正在使用Heroku和Git在Rails网站上开发一个Ruby。

我应该使用哪些工具和功能来设置以下简单开发过程?

代码>签入>自动测试>自动部署

  • 我将代码检查到我的存储库中(首选选项,托管git,例如github)
  • 测试自动运行,网站已在我的登台Heroku应用程序中部署
  • 如果测试通过,该网站将自动部署在我的Production Heroku应用程序中
  • 如果测试失败,我想以某种方式通知我。

您将如何做?

有帮助吗?

解决方案

我们用 正直. 。这是一个非常简单的解决方案 - 它不会在阳光下完成所有操作,但是设置和处理最常见的用例/功能非常容易。如果您想做更多的话,也很容易侵入。

诚信状态:

Heroku是部署完整性的最简单,最快的方法。

然而:

笔记
不可能通过Heroku上的SSH访问存储库

这是因为您的Integrity应用程序需要SSH键。这不是不可能的,但是绝对可以跳过一些篮球。您需要给诚信一个私钥,然后将其放入应用程序中,然后在启动时使用该SSH键来使用该SSH键 git clone.

在您列出的内容中,自动部署可能是大多数人不会期望他们的CI服务器会做的事情(并且Integrity不会开箱即用)。您需要配置Git以使用该SSH键并启动A git push 从适当的位置(已签出的存储库)。

不幸的是,我不知道如何执行此操作的详细信息 - 我们实际上在VPS上运行完整性。

其他提示

Circleci 准确提供您需要的东西。我们将在每次推动下运行您的测试,如果它们通过(到Heroku或使用Capistrano/Fabric/其他任何东西),请部署它们,并在通知失败时向您发送通知。

对于序言,我是代码职位的创始人之一(https://codeship.io),这是一项完全支持这一点的服务。

但是有关主题的更多信息,基本上有两种不同的方式可以实现这一点(请记住,我使用的所有分支名称都是任意的,可以完全不同):

一次分期/生产

每当您推到主人或特定的部署分支时,您都会运行测试,如果所有测试都将您首先部署到登台应用程序,则运行单独的测试(Selenium或Sauce Labs非常适合),并且如果将其置于迁移(包括迁移)中,则推到您的生产应用程序。

这很棒,因为最新版本始终在生产中可用,我们现在已经使用此周期了很长时间了。对我们有好处。不利的一面是,推到舞台上的Heroku应用程序需要花费一些时间。如果您想根据生产数据的副本运行迁移,则需要更多的时间。这不是永恒的,但需要几分钟。

分期/生产作为单独的步骤

您可以将单独的登台/生产分支部门部署到各自的Heroku应用程序。这具有更快的速度,您可以控制何时发布某些零件。尤其是对于您想要外部反馈之前的应用程序,在部署生产之前,此功能效果很好。

我们在RailsonFire上支持所有这些,但是我们目前正在研究我们的服务的新版本,这更好。我们与Heroku非常融合,因此您不必考虑(但是仍然可以选择以任何您想要的方式进行操作)

市场上有许多工具可以做到这一点。 Snapci 优惠 部署管道 这使您可以通过测试来推动所有提交,然后作为部署管道的不同阶段进行分期和生产。我们还为测试并行化,建造分支和拉力要求提供了全力支持。

好吧,有哈德逊提供了git插件以及脚本支撑。剩下的就是配置,我想。

哈德森: http://hudson.dev.java.net

尝试 Heroku-bartender. 。写作 这里.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top