はじめに
GitLab 10.6 から、 GitLab CI/CD が GitHub に対応しました。
GitHub で管理している Rails アプリを GitLab-CI を用いて Heroku に自動デプロイする手順をまとめます。
前提
- GitHub で Rails アプリを管理している
- Heroku Applicaton は作成済み
- GitLab Runner は作成済み、もしくは
gitlab.com
の public runnner を使う
手順
GitHub リポジトリに接続する
CI/CD を実行するための新規 GitLab リポジトリを作成します。
-
New project
>CI/CD for external repo
>GitHub
をクリック -
List your GitHub repositories
をクリック -
接続したいプロジェクトの
Connect
をクリック
.gitlab-ci.yml
を追加する
Rails アプリを Heroku へ自動デプロイするための設定をおこないます。
GitHub プロジェクトのルート下に.gitlab-ci.yml
を作成します。
production:
stage: deploy
script:
- gem install dpl
- dpl --provider=heroku --app=gitlab-ci-ruby-test-prod --api-key=$HEROKU_PRODUCTION_API_KEY
Note:
gitlab-ci-ruby-test-prod
は実際のアプリ名に置き換える。
$HEROKU_PRODUCTION_API_KEY
は後述する。
Heroku API Key を CI/CD 変数にセットする
先ほど .gitlab-ci.yml
に記述した$HEROKU_PRODUCTION_API_KEY
をセットします。
-
GitLab の
Settings
>CI/CD
>Secret variables
>Expand
をクリック -
コピーした Heroku API Key を入力して
Save variables
をクリックNote:
Protected
にはチェックを入れない。
チェックを入れると、Protected Branche か Protected Tag でないと変数が使えないため。
GitHub にコードを Push
以上で GitHub にコードを Push するたびに、 Heroku へ自動デプロイされるようになっているはずです。