在Heroku部署之后,Trigger Travis运行

Sim*_*rta 7 ruby-on-rails heroku travis-ci

我在Travis上有一堆Integrationtests,我需要我的Ruby on Rails应用程序部署到Heroku之后运行.我怎样才能做到这一点?

我尝试使用HTTP-POST-Method但Travis需要自定义标头和JSON主体,Heroku不支持两者.还有另外一种方法吗?

Mic*_*iak 1

我可以想到几个解决方案,但没有一个是完美的。

一:您可以创建简单的应用程序,将普通的 Heroku 部署挂钩转换为 Travis 可接受的格式。当然,您需要将其托管在某个地方,但它是 Amazon Lambda 或类似解决方案的一个很好的用例。如果您想尝试无服务器,我认为您有一个完美的案例。而且托管成本几乎为零。

二:你可以在 Heroku 上使用发布阶段。创建一个脚本bin/notify-travis并将其添加到您的 Procfile 中release: bin/notify-travis。问题是如何获取有关已部署代码的所有信息(例如提交 sha)。为此,您可以启用名为 的实验室功能dyno-metadata。它将注入额外的配置变量,其中一个HEROKU_SLUG_COMMIT包含提交 sha。如果需要更多数据,那么此解决方案可能不起作用。确保bin/notify-travis返回 0。它将在部署之前运行。如果失败,您的代码将不会被部署。

三:您可以找到或编写自定义构建包,将 webhook 发送到 Travis。问题是它将在构建阶段运行。如果出现错误,您的代码可能无法部署,但您将发送一个 Webhook。而且像解决方案二一样获取有关构建的所有必需信息也可能会出现问题。

所以你有一些选择。我认为第一个是最好的,但它可能不符合您的其他要求。