はじめに
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 へ自動デプロイされるようになっているはずです。




