JenkinsでGitHubのTagが更新されるのを監視してビルドする
とあるGitHubで管理しているコードを以下のように更新したのですが、だんだん面倒になってきましてJenkinsさんに一部をお願いすることにしました。
- developmentブランチで開発/テスト。Pull Request。
- developmentブランチでMerge
- masterブランチへマージ
- 本番サーバでfetch/merge
- テスト
- リリース
いざ書くと少し面倒ですね。。。小さいシステムなのでステージングはなしの環境です。
JenkinsとGitHubでどのように自動化するか
GitHubとの連携
「jenkins pull request builder plugin」を使うか悩んだのですが、「GitHub Plugin」を使うことにしました。ステージングがあればDevからのPull Requestを検知して、自動でステージングでテストして結果をBotが通知なんてことも考えたのですが、小規模なのでお手軽さを重視。
トリガーはリリース時に付与するバージョンtagを使うこととします。
Jenkinsのジョブをどうするか
新しいtagが付与されたことを確認すると、
- developをmasterへマージ
- Slaveをサービスアウト
- Slaveでfetch/merge
- Slaveでテスト
- Slaveをサービスイン
以降、masterでも同様の作業を実施
GitHubのTagが更新されるのを監視してビルドする設定
まず、「GitHub Plugin」のインストールをしていいない人は以下を参考に実施してください。
Jenkinsで新規Jobを作成して「GitHub Plugin」の設定項目で以下を設定します。
Git Repositories -> 高度な設定 -> Refspec
+refs/tags/*:refs/remotes/origin/tags/*
Git Repositories -> Branches to build
*/tags/*
特定のtagだけでよければBranches to buildにtags/
ビルド・トリガー → SCMをポーリング
5分間隔の設定例です。
SCMをポーリング H/5 * * * *
設定は以上です。その他ビルド手順などは各自設定してください。
動作確認
左メニューバーにGitのポーリングログという項目が出てきます。 新しいTagがつけられた場合は、Changes foundを確認できます。
Started on 2015/03/18 23:48:00 Polling SCM changes on master Using strategy: Default [poll] Last Built Revision: Revision (refs/tags/v0.6.6) > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repositories > /usr/bin/git config remote.origin.url git@github.com:<your-repo>.git # timeout=10 Fetching upstream changes from git@github.com:<your-repo>.git > /usr/bin/git --version # timeout=10 using GIT_SSH to set credentials api-gateway deploy key > /usr/bin/git fetch --tags --progress git@github.com:<your-repo>.git +refs/tags/*:refs/remotes/origin/tags/* Polling for changes in Seen branch in repository origin/develop Seen branch in repository origin/master Seen branch in repository origin/tags/v0.6.6 Seen branch in repository origin/tags/v0.6.7 Seen 8 remote branches > /usr/bin/git log --full-history --no-abbrev --format=raw -M -m --raw # timeout=10 Done. Took 2.9 秒 Changes found
シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。
Jenkins実践入門 ?ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
- 作者: 佐藤聖規,和田貴久,河村雅人,米沢弘樹,山岸啓,川口耕介
- 出版社/メーカー: 技術評論社
- 発売日: 2011/11/11
- メディア: 単行本(ソフトカバー)
- 購入: 26人 クリック: 496回
- この商品を含むブログ (65件) を見る
チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)
- 作者: 池田尚史,藤倉和明,井上史彰
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (10件) を見る
- 作者: Junio C Hamano,大塚弘記,川口耕介,kana,大竹智也(tomoya),尾藤正人,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2013/04/10
- メディア: 大型本
- クリック: 1回
- この商品を含むブログ (11件) を見る