2016年2月29日月曜日

[Jenkins] ビルドのパラメータ「List Subversion tags (and more)」に branches にあるディレクトリが列挙されないときに確認すること

trunk/branches/tags の基本ディレクトリはありますか?


うん。普通はあるよね。
でも、それでハマったんだ。

もし、同じことで困っている人は trunk/branches/tags の基本ディレクトリがあるか確認してみてください。
以下は、経緯と理由です。

やりたかったこと
やりたかったことは、これ。
iutest の場合)
「List Subversion tags (and more)」を普通に設定すると trunk,branches/*,tags/* のディレクトリが列挙されます。
が、問題のリポジトリはなぜか列挙されなかったのです。


再現用に作ったリポジトリの構成は以下。


こんな感じで列挙されない。


フィルターの正規表現を間違えたのか?プラグインのバージョンで違う?とかやって時間を潰してしまいました…

理由
調べたところ、プラグインのソースに行きつきました。(subversion-2.5.7)
https://github.com/jenkinsci/subversion-plugin/blob/subversion-2.5.7/src/main/java/hudson/scm/listtagsparameter/ListSubversionTagsParameterDefinition.java

getTags

getSVNRootRepoDirectories

getTags 関数を見ると、isSVNRepositoryProjectRoot が true の場合のみ、getSVNRootRepoDirectories が呼ばれて branches/tags 以下のディレクトリをリストアップしてくれます。

isSVNRepositoryProjectRoot

isSVNRepositoryProjectRoot を見ると、trunk/branches/tags ディレクトリがあることが条件であることがわかります。

つまり、ルートディレクトリと判断されてない!!誰だよこのリポジトリ作ったのは…



この記事が誰かの助けになれば幸いでございます。

0 件のコメント:

コメントを投稿