Jenkins の Mercurial プラグイン を rollback した状態でも ポーリングができるように改良しました
概要
JenkinsとMercurialを組み合わせ、公開リポジトリにpushするコードはクリーンなコード(ビルドとテスト済み)としたい。その前に行ういわゆるプライベートビルドとテスト(以降、検証ビルドを呼びます)を Jenkins で行い、検証ビルドに合格したものを 公開リポジトリに push するという WEB+DB PRESSのVol.67 の記事にあるような環境を構築しました。
検証ビルドに失敗した場合に、そのpushは無かったことにするために hg rollback をします。しかし、次の Jenkins のポーリングでエラーとなってしまい、それ以降検証ビルドができなくなります(ビルドボタンを手で押せば回復しますがせっかくの自動化システムで面倒ですよね)
動作環境
まず動作環境について図で説明します。公開リポジトリにpushする前に、検証ビルドを行なっています。
エラーになる状況の例
エラーになる状況をhgのchangesetとrollbackした場合のエラーメッセージについて説明します。
下記リポジトリで、 hg rollback した場合、 4:cf99ef461cd7 が rollback されるケースです。
@ チェンジセット: 4:cf99ef461cd7 | タグ: tip | ユーザ: Takayuki KONDO <tkondou@gmail.com> | 日付: Sat May 05 00:09:40 2012 +0900 | 要約: 44 | o チェンジセット: 3:4ba5c267c1ce | ユーザ: Takayuki KONDO <tkondou@gmail.com> | 日付: Fri May 04 17:28:34 2012 +0900 | 要約: 333 | o チェンジセット: 2:9d33783e9a81 | ユーザ: Takayuki KONDO <tkondou@gmail.com> | 日付: Fri May 04 15:53:41 2012 +0900 | 要約: change 22222 | o チェンジセット: 1:7db2e5c5774c | ユーザ: Takayuki KONDO <tkondou@gmail.com> | 日付: Fri May 04 15:52:50 2012 +0900 | 要約: change 11111 | o チェンジセット: 0:123a1e077203 ユーザ: Takayuki KONDO <tkondou@gmail.com> 日付: Fri May 04 15:52:26 2012 +0900 要約: README added
問題
Jenkinsのポーリング時、hg status がエラー(未知のリビジョン)となってしまい、それ以降ポーリングによるビルドが走ることがなくなってしまいます。
.... [workspace] $ hg status --rev cf99ef461cd787fcef9d32b4018f141634e2dfa0 --rev 4ba5c267c1ce68ef73c0ae4d2bae1ad8713d96b0 ERROR: Failed to run hg status --rev cf99ef461cd787fcef9d32b4018f141634e2dfa0 --rev 4ba5c267c1ce68ef73c0ae4d2bae1ad8713d96b0 中断: 'cf99ef461cd787fcef9d32b4018f141634e2dfa0' は未知のリビジョンです! FATAL: Failed to compare with remote repository ...
原因
Jenkins の workspace 内のリポジトリを rollback する運用を想定していないためと思われます。
対応
rollback した場合、 Jenkins内で認識している pull した 最新Revを、現在のRevに合わせることでエラーを発生しないようにしました。
Jenkins + Mercurial でプライベートビルドをJenkinsで自動化しているような環境を構している方(日本でやっている方はどれだけいるだろう)にオススメする改良だとは思います。
- 作者: 川口耕介,山本和彦,大和田純,白土慧,太田昌吾,個々一番,Shawn M Moore,清水亮,じゅんいち☆かとう,小野修司,おにたま,神林飛志,杵渕朋彦,中島聡,齋藤正浩,高橋征義,ミック,みやけん,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2012/02/24
- メディア: 大型本
- 購入: 14人 クリック: 239回
- この商品を含むブログ (25件) を見る
- 作者: 藤原克則
- 出版社/メーカー: 秀和システム
- 発売日: 2009/01
- メディア: 単行本
- 購入: 10人 クリック: 195回
- この商品を含むブログ (61件) を見る
- 作者: John Ferguson Smart,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/02/22
- メディア: 大型本
- 購入: 12人 クリック: 304回
- この商品を含むブログ (26件) を見る