Heroku Rails运行自定义构建测试



我想包括一个测试,以作为Heroku的构建过程的一部分执行。如果这些测试中的任何一个都失败了,我不希望Heroku发布构建。

测试:

e.g verify initialisation of *required* env variables

因此,当我运行

git push heroku master

我希望进行测试。

我该怎么做?

您可以使用CircleCi。首先将您的应用程序与CircleCi集成,然后查看选项需要在存储库设置的分支>受保护的分支部分中合并之前通过状态检查。之后,您需要编写一些Shell脚本并将其保存到项目文件夹中的脚本。

您可以查看本教程以获取应用程序的CircleCi实现。

https://circleci.com/docs/1.0/language-ruby-on-rails/

对于部署脚本,您可以使用以下类似的内容。在脚本文件夹和内部创建一个名为"生产的文件";

#!/bin/bash
set -x
set -e
export RAILS_ENV='production'
export RACK_ENV='production'
[[ ! -s "$(git rev-parse --git-dir)/shallow" ]] || git fetch --unshallow
git push git@heroku.com:myapp.git master:master
heroku run rake db:migrate --app myapp
heroku run rake db:seed --app myapp

流量将是这样的;您将从分支机构创建一个拉动请求。创建拉动请求后,您的测试将自动从CircleCi开始。如果它通过,您将能够将拉的请求合并到主分支。合并后,测试将再次运行,它将像您在Circle.yml文件中定义的那样部署该应用程序。

您可以在此处找到有关circle.yml配置的详细信息,并且可以在circle.yml文件中使用上述脚本,例如

deployment:
  production:
    branch: master
    commands:
      - ./script/production

我认为,更好的做法也将重复以这些登台环境来重复这些步骤。

希望它有帮助。

最新更新