ドーモ、エンジニア=サン。Jenkinsおじさんです。
気がついたらJenkinsからBitBucketへの連携が上手くいかなくなっていたので修復した際のメモを残しておく。
[問題:BitBucketのプルリクエストが更新されない]
久しぶりにあるプロジェクトのソースコードを修正する必要があった。このプロジェクトはJiraで課題管理をし、BitBucketでソースコードを管理し、Jenkins(ver 2.150.2)でビルドを実行している。
Jiraに課題のチケットを作成し、BitBucketからクローンしたGitリポジトリに新規ブランチを作成して修正をコミットしてプッシュし、プルリクエストを作成するところまでは問題なくできた。
Jenkinsもプルリクエストの修正をビルドして、問題ないとプルリクエストにコメントしている。
だが、警告が消えず、プルリクエストをマージすることができない。
本来であれば、プルリクエストの詳細欄に次のようにビルド成功を示す緑色のチェックマークが表示されるはずだった。
現在はチェックマークが表示されておらず、そもそもビルドが実行されたかどうかすら記録されていない。
[対策:Git pluginをダウングレードする]
Jenkinsのビルドログを見ていると、以前緑のチェックマークが表示されていた際のビルドログが偶然残っていて、比較することができた。
正常時(BitBucketにビルドが記録される):
Archiving artifacts Notifying Stash at "http://private.bitbucket.url" Notified Stash for commit with id XXXXXXXXXXX (コミットID) Checking for post-build
現在(BitBucketにビルドが記録されない):
Archiving artifacts found no commit info Checking for post-build
どうやらビルド対象となるコミットIDが見つからないのが問題なようだ。「found no commit info」で検索するとGitHubのissueがヒットした。stashnotifier-pluginに起票されているissueだが、Git pluginにバグがあるらしい(StashはBitBucketの旧名)。
[手順詳細]
上記issueによれば、Git pluginを4.0.0-rc
から3.9.1
にダウングレードすれば解決するらしい。やはりrc(release-candidate)なんて使うもんじゃないか……。
プラグインのダウングレードに取り掛かるべく、Jenkinsにログインしてプラグインマネージャーの画面を開く。
確かにGit pluginのバージョンは4.0.0-rc
と記載されている。どうやら直りそうな予感。
4.0.0-rc
というバージョンの横に「Downgrade to 3.9.1」というボタンが表示されているのでそれをクリックすると、画面が切り替わってプラグインのインストールが開始された。
インストールが完了すると次のような画面になる。
再起動が必要とのことなので、「Restart Jenkins when installation is complete and no jobs are running」にチェックをつけると、実行中のジョブがなかったので急に再起動が始まった。
再起動中は以下のような画面が表示された。
Jenkinsの再起動完了後、改めてプルリクエストを作り直す必要はあったが、無事以下のようにプルリクエストをマージできる状態になった。
[まとめ]
- Jenkinsに限らず、プラグインやライブラリのバージョン管理は大事
- プラグインやライブラリのバージョンをあげる前にテストをしよう
- 最近はアプリケーション本体の開発以外にも、色々と「Opsちっく」なこともやっていて、それはそれで楽しいけどもう少し計画的にやりたい
今日のブログ執筆BGMはこちら。
2010年代になってもMegadethやBlack Sabbathが出てきて強い。