SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Herokuではじめるチーム開発と運用

Herokuとチーム開発のおいしいレシピ~HerokuとGitHubを連携してCI/CDを実現する

Herokuではじめるチーム開発と運用 第2回

GitHubとHerokuを連携させて、継続的インテグレーションを実現する

 HerokuはGitHub Flowで重要とされる2つの自動化機能をHeroku CIと、Heroku Pipelinesによって提供しています。

 Heroku CIでは、投入されたソースコードとテストコードにより、単体テストを実行する環境を提供します。利用する言語によって、よく利用されるテストフレームワークを用いたテストが標準的に提供されています。例えば、Rubyの場合はRSpecやMiniTestなどを自動で判断してテストを行うよう定義されています。またHeroku CIでは、一般的に使われているテストコードを実行するだけではなく、個別にテストを実行する方法を記述して、固有のテストフレームワークにあわせてテストを実行することもできます。このように、ソースコードがプッシュされた段階でHeroku CIを自動的に実行して、アプリケーションのビルドと単体テストを完了させる「継続的インテグレーション(Continuous Integration=CI)」の仕組みを実装できるようになっています。

Heroku PipelinesとHeroku CIを組み合わせて、すぐにCI/CDを実現する

 Heroku CIは、単体で実行することはもちろん、Heroku Pipelinesの自動デプロイと連動して実行させることが可能です。Heroku Pipelinesで準備した環境へ、ソースコードがプッシュされた時に、自動的にHeroku CIを実行してビルド&テストを実行できます。これにより、Herokuアプリケーション環境へデプロイを行うと、単体テストまで完了したアプリケーション実行環境が自動的に準備されて利用可能となります。利用者は、このアプリケーション実行環境での統合・結合テストを行って、問題がなければPromoteボタンをクリックするだけで、本番環境へ即時にリリースができます。

 Heroku Pipelinesは、GitHubのプルリクエストと連携できます。GitHubと連携させることによって、GitHubへソースコードがプッシュされた段階で自動的に単体テストが行われます。ここで単体テストをスルーできた安全なソースコードについて、プルリクエストを申請させることができます。プルリクエストを実行すると、自動的に「ReviewApp」という一時的なアプリケーション実行環境がビルドされて、Herokuアプリケーションの実行環境が準備されます。このようにHeroku Pipelinesでは、GitHubへプルリクエストを送るだけで、自動的にアプリケーションをテストする環境が準備できるという優れものです。

 次に、この「ReviewApp」のアプリケーションをユーザがテストをして問題がなければ、GitHub側でマージをすれば本番向けのソースコードとして準備完了です。そして、このマージされたソースコードを、自動的にステージング環境へデプロイできます。もちろんステージングの環境へデプロイする際も、Heroku CIが自動的にテストを行った上で、デプロイが実行されます。このように、ユーザが手動でテストを行わなければならない局面以外では、Heroku Pipelinesが自動的にHeroku CIと連携をして、自動的にアプリケーションのステージングまで行うことができる「継続的デリバリー(Continuous Delivery=CD)」の環境を提供します。また、プロダクション環境へのアプリケーションリリースをも自動化することができるので、全てを完全自動化した「継続的デプロイメント(Continuous Deployment=CD)」も実現できます。

次のページ
プルリクエストとReviewAppを連携させて、シームレスにCDを実現する

この記事は参考になりましたか?

Herokuではじめるチーム開発と運用連載記事一覧

もっと読む

この記事の著者

阿部 崇(株式会社セールスフォース・ドットコム)(アベ タカシ)

 過去、金融系の大規模インフラアーキテクチャのデザインを担当するアーキテクトに従事し、その経験を活かして、2016年よりプラットフォーム専属のエンジニアとして Salesforce.com へ入社。Salesforce.com では、Force.com や Heroku を軸とした、マルチクラウドシ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/10233 2017/06/13 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー