web-dev-qa-db-ja.com

Jenkinsマルチブランチパイプラインは削除されたブランチをプルーニングしません

現在、Jenkinsインスタンス(本稼働インスタンス)の1つでマルチブランチテストジョブを処理するために使用されるbitbucketブランチソースプラグインに問題があります。

削除されたブランチに関連するジョブは、Jenkinsでは削除されません。無効として表示されます。

Scan Multibranch Pipeline Logの確認次のエントリが見つかりました。

Will not remove foobranch because it is new
Will not remove PR-1 because it is new
Will not remove bar because it is new
Will not remove freeDiskSpaceHack because it is new

すべてが期待どおりに機能している別のインスタンス(テストインスタンス)があります-ブランチはすぐに削除されます。ログに以下が表示されます:

Will remove freeDiskSpaceHack
Will remove foo
  • どちらの場合も、同じJenkinsバージョン(2.212.2)とプラグインバージョンを使用しています。
  • 両方のインスタンスのジョブは、Bitbucketブランチソースプラグインに同じ設定を使用します。

Branch source plugin settings

  • 違いが1つあります。どちらのジョブも、bitbucketで異なるリポジトリを使用します。テストジョブの1つ(ジョブが削除される場所)は、もう1つのフォークです。

それ以外に違いはありません。

私の質問は:

  • なぜ私たちの生産的なインスタンスではうまくいかないのですか?秘密の設定はありますか?
  • ログが何を伝えたいのか:Will not remove <branch> because it is new

うまくいけば、誰もが手がかりを持っています。

11
Joerg S

最後に私は自分で隠しスイッチを見つけました。でも少しバカな感じ。

ジョブ構成では、古いアイテムを保持する期間を指定できます。このジョブを最初に設定するとき、この設定とjenkinsに保持する期間古いビルドを通知する設定を混同している必要があります。したがって、30日に設定されました。

ところで:個々のブランチのために保持されるビルドの数は、この設定の影響を受けません...:

孤立アイテム戦略(どのように見えるか)

enter image description here

孤立したアイテムの戦略(どのように見えるべきか)

ただし、孤立したブランチをすぐに取り除くには、次のように番号を入力しないでください。

enter image description here

14
Joerg S