« HerokuにMEANアプリをデプロイする | メイン | Herokuの新料金はお得なのか »

2015年5月 7日 (木)

Heroku Github PullRequest Deploy の巻

Heroku Github PullRequest Deploy の巻

こんにちは、浅野です。

今回は、PublicBetaで復活した Github PullRequest Deployの紹介です。

簡単に3行で

  1. GithubのPullRequestに同期して自動的にHerokuアプリが作られます
  2. 設定が必要なapp.jsonを母体アプリから生成するウィザードが用意されました
  3. 親アプリの環境変数の値コピーができるようになりました

実際に設定を行って使ってみた手順、は次回のポストで紹介します。

Github PullRequest Deploy とは

Herokuアプリケーションと同期させたGithubリポジトリへプルリクエストが送られた時に、 そのプルリクエストの内容のHerokuアプリケーションが自動的に作られる仕組みで、下記のような特徴があります。

  • HerokuアプリケーションはPullRequest単位で自動的に作られます(親アプリ名がhogeだった場合、#1のPullRequestで作られるアプリ名はhoge-pr-1)
  • そのHerokuアプリケーションのライフサイクルはPullRequestのライフサイクルと自動で同期します。
    • PullRequestが作られた時にHerokuアプリケーションも作られます
    • PullRequestが更新された時(コードが追加でPushされた時)にHerokuアプリケーションも更新されます
    • PullReqeustがマージされた時にHerokuアプリケーションも消滅します

何が嬉しいの?

  • PullRequestの変更点を確認する時に、動く環境を作るのが省力化できます
    • これまでは自分でブランチをチェックアウトして、ローカルで動かすとか・Herokuにデプロイ、などの対応だった
  • 動的テスト(Seleniumを使ったWebUIテスト、Vaddyのような脆弱性スキャン、お客様側の受け入れテスト)を実行しやすくなる

app.jsonの生成ウィザード

PullRequestDeployを使用するには、リポジトリ直下に app.json を置く必要があります。 このapp.jsonは、規模の大きなアプリになればなるほど後から作るのが面倒になります。(使用するaddonの数が増えたり、環境変数の数が増えたり) このウィザードを使用すると、母体アプリケーションで定義されている内容からアドオン・環境変数の項目が設定済みの app.json の雛形が作られ、それをカスタマイズした後にgithubリポジトリへコミットまでを行うことができます。

親アプリの環境変数の値コピー

親となるHerokuアプリケーションの環境変数の値を、PullRequestごとに生成される子Herokuアプリ―ケーションでコピーできるようになりました。 これによって、コード管理したくない秘匿情報(DBの接続情報、何らかのサービスのAPIキー等)を子Herokuアプリケーションに引き渡す事ができます。

例えば、開発環境で子HerokuアプリケーションともDBを共有するようにできるようになるので、 developブランチの内容をデプロイした親Herokuアプリケーションで、特定のデータの組み合わせで発生するバグが そのバグ修正を実施したPullRequestのブランチをデプロイした子Herokuアプリケーションで解消されている、が簡単に確認できるようになります。

app.jsonの書き方

親Herokuアプリケーションから値をコピーしたい環境変数 INHERIT_THIS_CONFIG_VAR をapp.jsonの "env"で以下のように定義します。 これで親Herokuアプリケーションで定義されている値をそのまま利用できるようになります。

"env": {
    "INHERIT_THIS_CONFIG_VAR": {
      "required": true
    }
  }

次回ポストでは、これらを実際に設定して使ってみた手順をご紹介いたします。

公式の情報ソース

コメント

コメントを投稿

採用情報

株式会社フレクトでは、事業拡大のため、
Salesforce/Force.comのアプリケーション
開発
HerokuやAWSなどのクラウドプラッ
トフォーム上でのWebアプリケーション開発

エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみた
い方、是非ご応募下さい。

フレクト採用ページへ

会社紹介

株式会社フレクトは、
認定コンサルタント
認定上級デベロッパー
認定デベロッパー
が在籍している、
セールスフォースパートナーです。
heroku partnersにも登録されています。
herokuパートナー
株式会社フレクトのSalesforce/Force.com
導入支援サービス
弊社の認定プロフェッショナルが支援致します。
・Visualforce/Apexによるアプリ開発
・Salesforceと連携するWebアプリ開発
も承っております。
セールスフォースご検討の際は、
お気軽にお問合せください。
Powered by Six Apart