我已在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"
}
]
}
答案 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
使用Rubyv2.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