ruby-on-rails – Gitlab CI – 部署到Heroku并运行迁移

我在gitlab.com上托管了一个Rails应用程序,我按照本指南配置它以部署到heroku: http://docs.gitlab.com/ce/ci/examples/test-and-deploy-ruby-application-to-heroku.html.它工作正常.

我的问题是,每次部署到heroku时如何运行迁移?通过CLI进行部署时,我通常会这样做:

git push heroku master && heroku run rake db:migrate

但是使用gitlab-ci.yml我不知道如何做到这一点……

解决方法

如果您希望能够在GitLab CI过程中使用Heroku CLI的全部功能(包括在迁移失败时构建失败,无论出于何种原因),您还可以尝试这种方法来安装Heroku CLI并提供状态你的Heroku命令代码返回GitLab,当然还有命令行输出.在命令行上使用没有凭据的heroku运行需要将HEROKU_API_KEY环境变量设置为可以访问相关应用程序的密钥.
before_script:
  - echo "deb http://toolbelt.heroku.com/ubuntu ./" > /etc/apt/sources.list.d/heroku.list
  - wget -O- https://toolbelt.heroku.com/apt/release.key | apt-key add -
  - apt-get update
  - apt-get install -y heroku-toolbelt
  - gem install dpl

stages:
  - deploy

test_on_heroku:
  type: deploy
  script:
    - dpl --provider=heroku --app=my_heroku_app --api-key=$HEROKU_API_KEY
    - heroku run <your command here> --exit-code --app my_heroku_app

我实际上在Heroku实例上运行我的测试以确保环境完全相同.这是真正得心应手的地方.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...