如何使用Gitlab CI在Heroku上部署Showoff应用程序

时间:2017-01-06 12:49:56

标签: ruby-on-rails git heroku gitlab

我已在Heroku成功部署了一个炫耀演示文稿。因为Heroku使集成Github变得如此容易,所以我还能够在Heroku上添加一个Github repository自动部署。

我想在Gitlab中设置相同的东西。有人可以帮我设置吗?

Github使用的app.json如下:

{
  "name": "lunar-teach",
  "scripts": {
  },
  "env": {
    "LANG": {
      "required": true
    },
    "RACK_ENV": {
      "required": true
    }
  },
  "formation": {
  },
  "addons": [

  ],
  "buildpacks": [
    {
      "url": "heroku/ruby"
    }
  ]
}

1 个答案:

答案 0 :(得分:1)

使用以下.gitlab-ci.yml配置:

  

要使此配置生效,您需要获取heroku API key

首先定义您要使用的阶段, 如果要将测试添加到CI管道,请在此处添加:

stages:
  - staging
  - production

对于上面定义的每个阶段,请确保您已创建相应的heroku应用,并且每个heroku应用都添加了ruby buildpack。

现在,为了一些家务,并确保一切都是最新的

before_script:
  - apt-get update -qy

现在,对于您之前定义的每个阶段,请描述您需要的ruby版本。

  

截至2017年1月,showoff使用Ruby v2.2.6,在检查Ruby文档后更新图像

为每个阶段添加$HEROKU_APP-NAME$HEROKU_API_KEY

staging:
  image: ruby:2.2
  stage: staging
  script:
    - gem install dpl
    - dpl --provider=heroku --app=$HEROKU_APP-NAME --api-key=$HEROKU_PRODUCTION_API_KEY --strategy=git
  only:
    - staging

production:
  image: ruby:2.2
  stage: production
  script:
    - gem install dpl
    - dpl --provider=heroku --app=gitlab-ci-ruby-test-prod --api-key=$HEROKU_PRODUCTION_API_KEY --strategy=git
  only:
    - master

完整的脚本如下所示:

stages:
  - staging
  - production

before_script:
  - apt-get update -qy

staging:
  image: ruby:2.2
  stage: staging
  script:
    - gem install dpl
    - dpl --provider=heroku --app=gitlab-ci-ruby-test-prod --api-key=$HEROKU_PRODUCTION_API_KEY --strategy=git
  only:
    - staging

production:
  image: ruby:2.2
  stage: production
  script:
    - gem install dpl
    - dpl --provider=heroku --app=gitlab-ci-ruby-test-prod --api-key=$HEROKU_PRODUCTION_API_KEY --strategy=git
  only:
    - master