Multibranch Jenkinsビルドで一部のブランチを無効にする方法は?


9

Jenkinsfileで任意のブランチを実行するためのマルチブランチジョブセットがあります。

マルチブランチパイプラインで実行されているジョブのリストからブランチを削除する場合に考えられるオプションがいくつかあります。

  1. ブランチを削除できます
  2. そのブランチのJenkinsfileを削除できます

2番目の解決策は良いですが、コミットしてブランチのgitリポジトリにプッシュする必要があることを除いて、そのブランチが別のブランチにマージされると、Jenkinsfileが吹き飛ばされます。

マルチブランチパイプラインの一部のブランチのみを無効にする最良の方法は何ですか?

回答:


16

Jenkinsは、ワイルドカードまたは正規表現を使用して、名前でマルチブランチパイプラインのブランチをフィルタリングできます。

ジェンキンスフィルターブランチ


Jenkinsfile内でこれを行う方法はありますか(再現可能です)?
xjcl

1
はい、when { anyOf { branch 'master'; branch 'release/**' } }任意のステージ内(宣言的)またはif (env.BRANCH_NAME == 'master' || (env.BRANCH_NAME).startsWith('release/')) {}スクリプトパイプライン内(ほとんどどこでも)に追加できます。最初のオプションについては、jenkins.io/doc/book/pipeline/syntax/#whenでさらに利用できます。とにかく、最良の方法は、回答に記載されているように、マルチブランチパイプラインプラグインでこれを構成することです。
biolauri

0

対応するブランチジョブを作成したくないブランチのJenkinsfileを削除するだけです。これにより、ブランチジョブが削除されます(もちろん、「孤立したアイテムの戦略」を適切に設定している場合)。

Jenkins Multibranch Pipeline Projectの観点から見ると、これはブランチを削除するのと同じ効果があります。これは、対応するブランチジョブをいつ作成(または削除)するかの基準としてJenkinsfilesを含むブランチを単にスキャンしているためです。

ブランチジョブが再び必要になった場合は、コミットを元に戻してJenkinsfileを復元します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.