生産性向上ブログ@miyajan

圧倒的生産性向上を目指すエンジニアのためのブログ

Jenkins Pipeline でパラメータ(環境変数)でビルドするブランチを指定する

小ネタメモです。

Jenkins のジョブを作るときに、パラメータを受け取ってその値を環境変数としてブランチに指定することがあると思います。

f:id:miya-jan:20170712224729p:plainf:id:miya-jan:20170712224740p:plain

↑こんな感じですね。

しかし、この方法を Jenkins Pipeline で行うとエラーが出ます。

hudson.plugins.git.GitException: Command "git fetch --tags --progress origin +refs/heads/${BRANCH_NAME}:refs/remotes/origin/${BRANCH_NAME} --prune" returned status code 128:
stdout: 
stderr: fatal: Couldn't find remote ref refs/heads/${BRANCH_NAME}

どうやら環境変数が解決されないようなので調べてみると、SCM の設定で “Lightweight checkout” を無効にしないといけないようです。(関連issue

f:id:miya-jan:20170712224812p:plain

“Lightweight checkout” は Jenkinsfile を master で取得するときにリポジトリ全体をチェックアウトせずに Jenkinsfile だけ取得する仕組みのようです。なので、無効にすると master 側のディスク使用量などが若干増加すると予想されます。