Jenkinsでparameterized buildを定期実行したときの注意点
やりたかったこと
手動実行時はSVNで指定したタグを落としてきてから実行
定期実行時は前回落としてきたタグのプログラムを利用して実行
起こったこと
定期実行時に、パラメータ指定はデフォルト値を空を期待していたのに、なぜか最新のタグが指定されて実行されてしまった・・・
※ 以前は大丈夫だったのに、突然。。。
※ "List Subversion tags"の機能を使ってました。2016年なのにSVNかよ!というのはさておき
対策
こちら公式によると
Limitations
Currently the following are the known problems:When build triggers are used to start a build, there's no way to pass parameters. This includes SCM polling, downstream builds, and periodic builds. Instead, the specified default values will be used for string, boolean and choice parameters.
SCMのポーリングとか、定期実行時とか、手動以外で実行した際にはデフォルト値が使われるそうです。
なので、デフォルト値を明示的に指定しておくことにしました。
デフォルト値を"DEFAULT_VALUE"
とし、SVN_TAG_PARAMが、空 or DEFAULT_VALUEのときはチェックアウトしないという風に書き換えればOK
# タグが指定されている場合、チェックアウトする if [ "${SVN_TAG_PARAM-DEFAULT_VALUE}" != 'DEFAULT_VALUE' ]; then svn co https://svn/tags/"${SVN_TAG_PARAM}" fi