真耶Git176先日公開した記事「JenkinsでCI環境構築チュートリアル(Windows編)」では、Jenkinsのインストールとジョブの作成方法についてご説明しました。今回は特定のブランチにPUSHされたタイミングでGitHubと連携して最新ファイルを取得する方法をご説明します。~JenkinsとGitHubの連携~実際の開発シーンを想定して上記の図のようなフローを構築したいと思います。開発者が変更したソースコードをGitHubにPUSHしたことをトリガーにJenkinsにその旨を通知します。Jenkinsはその通知を受けて、最新ファイルをGitHubから取得してくる仕組みとなります。処理の流れとは逆になりますが、まずはJenkins側で「GitHubから通知を受け取る設定」と「ジョブの作成」から行っていきます。~GitHubからの通知を受け取る設定~本チュートリアルでは、特定のブランチにPUSHされた際にのみ動作する仕組みを構築していきたいのですが、GitHubは特定のブランチへの変更に限らず、すべてのブランチの変更を通知する仕様となっております。GitHubには変更があった旨を通知する際にJSONファイルを合わせて送信する仕組みがあり、Jenkins側でそのファイルを解析することでどのブランチに変更があったのかを判断できます。※JSONファイルの内容はデベロッパーサイトに詳しく記載されています。Jenkinsプラグインのインストール色々と難しいことを書いてしまいましたが、Jenkinsのプラグインを使うことで、これらの仕組みを簡単に実現できます。「Jenkinsの管理」->「プラグインの管理」->「利用可能」から、以下のプラグインをインストールしてください。※Jenkinsのプラグインには依存関係のあるプラグイン(そのプラグインを利用するために必要なプラグイン)がある場合があります。プラグインのWikiページには必要なプラグインが記載されている場合がありますので、こちらを確認することをオススメします。以下は依存関係のあるプラグインを含めたものになっております。Pluginプラグインをインストールしたら、「GitHubから通知を受け取るジョブ」と「GitHubから最新ファイルを取得するジョブ」の2つのジョブを作成します。1つのジョブですべての処理を書くことも可能ですが、モジュールとして役割ごとに分けて作成することで、修正がしやすくなり、また別のジョブで使いまわすこともできるためとても便利に扱うことができます。「フリースタイル・プロジェクトのビルド」で新しいジョブを作成し、「ソースコード管理」から「Git」にチェックを入れてください。build」欄にはソースコードを取得する対象のブランチ名を記述します。キャプチャ画像ではdevelopブランチを対象として設定しています。「フリースタイル・プロジェクトのビルド」で新しいジョブを作成し、GitHubからパラメーターを受け取れるようにするため「ビルドのパラメーター化」にチェックを入れてください。GitHubからは「payload」というパラメーターでJSON形式のコミット情報が送られてくるため、文字列の名前を「payload」と設定し、デフォルト値には「none」を設定しておきます。次に受け取ったJSONファイルをチェックし、該当のブランチであれば次の処理に進むよう設定します。developブランチでの変更を対象としたいため、それぞれ以下の通り設定します。~GitHubからJenkinsへの通知~GitHubからJenkinsへの通知は、GitHubのWebhooksという機能を利用して行います。WebhooksとはGitHubのリポジトリに変化があった際に任意のURLを叩いてくれる機能です。この機能を使うことでリポジトリにPUSHしたタイミングでJenkinsにその旨を通知することができるようになります。Services」を選びます。plugin)」を選択し設定画面へ遷移します。設定画面では、Jenkinsで作成したWebhooks用のジョブの実行URLを指定します。実行URLは以下の形式で指定します。ジョブの名前の後ろに「buildWithParameters」と必ず記載してください。http://[Jenkinsの動作するドメイン]/job/[ジョブの名前]/buildWithParametersジョブの実行これで設定はすべて完了となります。設定が問題なく完了していれば、GitHubの特定ブランチにPUSHすることで自動的にジョブが起動し、最新ファイルの取得まで行われるはずです。ジョブの実行後、Jenkinsの左メニューから「ビルド履歴」を選択し、実行したジョブの履歴を確認してみましょう。問題なく動作していれば以下のキャプチャ画像のように実行したジョブの左側に青い丸が表示されているはずです。赤い丸が表示されている場合はどこか設定が間違っている可能性がありますので、設定を見直してみましょう。おわりにJenkinsのプラグインを使うことで、GitHubと連携し最新ファイルを取得する仕組みを簡単に構築することができたと思います。ここまで環境が構築できれば、あとはコンテンツのビルドを行ったり、テスト処理を実行したりと、コンテンツにあわせて処理を追加していけば良いだけです。~GitHubからWebサーバーへのデプロイ~」と題して、Jenkinsを使ってテストサーバにデプロイする手順をご紹介していきたいと思います。平成27年12月9日に内容をメンテナンスしています。真耶インタラクティブデベロッパー。Web制作会社でサーバサイドやフロントエンドの制作に携わり、現在は株式会社ICSでインタラクティブコンテンツの制作を担当。MEDIAは株式会社ICSが運営するオウンドメディアです。ICSはインタラクションデザイン専門のプロダクション。最先端のwebテクノロジーを駆使し、オンスクリーンメディアの表現分野で活動しています。問い合わせ採用情報インタラクションコンテンツの制作や新しいことに挑戦しながら、互いにスキルを高め合えるメンバーをICSでは募集しています。詳しくは採用情報をご覧ください。MEDIAは古い記事でもメンテナンスし続けることで、常に役立つ情報発信を目指しています。