kdnakt blog

hello there.

Jenkins から BitBucket への通知が上手くいかなくなった

ドーモ、エンジニア=サン。Jenkinsおじさんです。

 

気がついたらJenkinsからBitBucketへの連携が上手くいかなくなっていたので修復した際のメモを残しておく。

 

 

[問題:BitBucketのプルリクエストが更新されない]

久しぶりにあるプロジェクトのソースコードを修正する必要があった。このプロジェクトはJiraで課題管理をし、BitBucketでソースコードを管理し、Jenkins(ver 2.150.2)でビルドを実行している。

 

Jiraに課題のチケットを作成し、BitBucketからクローンしたGitリポジトリに新規ブランチを作成して修正をコミットしてプッシュし、プルリクエストを作成するところまでは問題なくできた。

Jenkinsもプルリクエストの修正をビルドして、問題ないとプルリクエストにコメントしている。

f:id:kidani_a:20190328040420p:plain

 

だが、警告が消えず、プルリクエストをマージすることができない。

f:id:kidani_a:20190328040400p:plain


本来であれば、プルリクエストの詳細欄に次のようにビルド成功を示す緑色のチェックマークが表示されるはずだった。

f:id:kidani_a:20190326071134p:plain

現在はチェックマークが表示されておらず、そもそもビルドが実行されたかどうかすら記録されていない。

f:id:kidani_a:20190326070639p:plain

 

[対策: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の旧名)。

github.com

  

[手順詳細] 

上記issueによれば、Git pluginを4.0.0-rcから3.9.1にダウングレードすれば解決するらしい。やはりrc(release-candidate)なんて使うもんじゃないか……。

 

プラグインのダウングレードに取り掛かるべく、Jenkinsにログインしてプラグインマネージャーの画面を開く。

確かにGit pluginのバージョンは4.0.0-rcと記載されている。どうやら直りそうな予感。

f:id:kidani_a:20190326071100p:plain

 

4.0.0-rcというバージョンの横に「Downgrade to 3.9.1」というボタンが表示されているのでそれをクリックすると、画面が切り替わってプラグインのインストールが開始された。

インストールが完了すると次のような画面になる。

f:id:kidani_a:20190326071111p:plain

 

再起動が必要とのことなので、「Restart Jenkins when installation is complete and no jobs are running」にチェックをつけると、実行中のジョブがなかったので急に再起動が始まった。

再起動中は以下のような画面が表示された。

f:id:kidani_a:20190326071119p:plain


Jenkinsの再起動完了後、改めてプルリクエストを作り直す必要はあったが、無事以下のようにプルリクエストをマージできる状態になった。

f:id:kidani_a:20190326071134p:plain
 

[まとめ]

  • Jenkinsに限らず、プラグインやライブラリのバージョン管理は大事
  • プラグインやライブラリのバージョンをあげる前にテストをしよう
  • 最近はアプリケーション本体の開発以外にも、色々と「Opsちっく」なこともやっていて、それはそれで楽しいけどもう少し計画的にやりたい

  

今日のブログ執筆BGMはこちら。

www.youtube.com

2010年代になってもMegadethBlack Sabbathが出てきて強い。