8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GitLab CIを使ってGitHubプロジェクトをHerokuへ自動デプロイ

Last updated at Posted at 2018-05-11

はじめに

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 リポジトリを作成します。

  1. New project > CI/CD for external repo > GitHubをクリック

    スクリーンショット 2018-05-11 22.05.24.png

  2. List your GitHub repositoriesをクリック

    GitHub のアカウント認証すると、接続できるプロジェクトがリストアップされます。
    スクリーンショット 2018-05-11 22.17.58.png

  3. 接続したいプロジェクトのConnectをクリック

    しばらく待つと、次のように緑色になってDoneと表示されます。
    スクリーンショット 2018-05-12 0.21.37.png

.gitlab-ci.yml を追加する

Rails アプリを Heroku へ自動デプロイするための設定をおこないます。
GitHub プロジェクトのルート下に.gitlab-ci.ymlを作成します。

.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をセットします。

  1. Heroku のアカウント管理画面から API Key をコピー
    スクリーンショット 2018-05-11 22.48.58.png

  2. GitLab の Settings > CI/CD > Secret variables > Expand をクリック

    スクリーンショット 2018-05-11 22.36.17.png

  3. コピーした Heroku API Key を入力して Save variables をクリック

    スクリーンショット 2018-05-12 0.03.02.png

    Note:

Protected にはチェックを入れない。
チェックを入れると、Protected BrancheProtected Tag でないと変数が使えないため。

GitHub にコードを Push

以上で GitHub にコードを Push するたびに、 Heroku へ自動デプロイされるようになっているはずです。

参考

GitLab Documentation

GitLab Help

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?