Jenkins でブランチごとに Jenkinsfile を用いて挙動を変える

前提条件

Jenkins でブランチごとに挙動を変えるためには、以下の条件が必要です。

  • ジョブのタイプが「Multibranch Pipeline」であること

f:id:gregminster:20171207155840p:plain

ブランチごとに挙動を変えるために BRANCH_NAME でブランチ名を取得する

ブランチごとに挙動を変えるには、Jenkinsfile内で分岐をしてあげればよいでしょう。そのためにはブランチ名を取得できなければなりません。

env.BRANCH_NAME または BRANCH_NAME という変数に各々のブランチのブランチ名が格納されていますので、それを利用すればよいです。

備考

ジョブのタイプが「パイプライン」ではNG

ジョブのタイプが「パイプライン」ですと、${env.BRANCH_NAME}NULLだったり、${BRANCH_NAME}No such propertyだったりしちゃうのでダメです(以下を参照)。

「Multibranch Pipeline」において対象ブランチを絞る

本題とは関係ないですが、ジョブの設定項目のうち「Branch Sources」の中の「Behaviours」にて、対象ブランチ名をフィルタリングできます(画像参照)。

「Jenkinsfile」という名前を変える

変える必要は皆無でしょうが、いわゆるJenkinsfileという名前は任意に変更することができます*1。設定項目の「Build Configuration」で変えられます(画像参照)。

f:id:gregminster:20171207160420p:plain

*1:置き場所も

Powered by はてなブログ