web-dev-qa-db-ja.com

Jenkinsfileでマルチブランチパイプラインのブランチを無効にする方法

Jenkinsにマルチブランチパイプラインプロジェクトがあります。パイプラインプロジェクトにリストされているブランチを無効にしたい。 SCMトリガーを超える例外を追加できます。しかし、手動トリガーを含むすべてのトリガーを無効にしたいと思います。ブランチ用に作成されたジョブの[ビルドトリガー]で[このプロジェクトを無効にする]を使用した場合、ページをリロードするときにそのオプションが選択されません(単一ブランチパイプラインで使用できる保存/適用ボタンがありません)。 Jenkinsfileで構成された次の構成のみが保持されます。

pipelineTriggers([
    snapshotDependencies(),
]),

Jenkinsfileで「このプロジェクトを無効にする」を指定する方法はありますか

8
Gayan Viranka

確かに、マルチブランチパイプラインはジョブから設定を変更する制御を提供しないため、Jenkinsジョブからプロジェクトを無効にすることはできません

ブランチの構築を停止する2つの方法。

1)ブランチを無効にします

設定を制御するには、PROJECT(設定を変更するプロジェクト)>構成>プロジェクト(詳細設定を有効にする)に移動します

enter image description here

"Exclude branch"にブランチを入力して、設定を保存します。

2)Jenkinsfileの名前を変更します

プロジェクトの設定を制御できない場合、project/branchでJenkinsfileの名前を変更するのが簡単な方法です。

enter image description here

この構成は、ブランチ/プロジェクトに「Jenkinsfile」が含まれている場合にビルドをトリガーするように定義します。したがって、名前を変更してもビルドはトリガーされません。

お役に立てれば..

[〜#〜] update [〜#〜]:AFAIK、Jenkisfileからプロジェクトを無効にすることはできませんしかし、回避策として、次のようにcronjobを構成できます。

properties([pipelineTriggers([cron('')])])

設定がcronで利用できない場合、ビルドはまったくトリガーされません。

5
Here_2_learn

あなたはこのようなことをすることができます:

    stages {
    stage('Build') {
        when { 
            not { 
                branch 'master' 
            }
        }
        steps {
            ...
        }
    }
}

これは、パイプラインをまったく実行しないこととまったく同じではありませんが、少なくとも非常に高速に実行され、実際にはビルドを実行しないため、失敗しないので便利です。/gitflowパターン。デプロイが失敗するため、masterブランチを2回以上ビルドしないでください...

2
user2163960