6

Jenkins マルチブランチ パイプラインの使用を開始したばかりです。新しいブランチが作成されると、Jenkins が自動的に新しい Jenkins ジョブを作成するというアイデアが気に入っています。すべてのリリース可能な開発が Jenkins で構築されていることを確認します。ほぼすべてのリリースで分岐するプロジェクトが 40 から 50 ほどありますが、分岐するたびに 40 ほどのジョブを作成するのはエラーが発生しやすい作業です。

ただし、Jenkins には 2 種類のパイプライン ビルドがあるようです。

  • 通常のパイプライン ビルド: Jenkins ジョブで場所とブランチを指定します。ただし、Jenkins ジョブ構成内のスクリプトを使用するか、ソース リポジトリのスクリプトを使用するかを指定できます。Jenkinsfileこれにより、すべてのジョブに対して1 つを維持することができます。ビルド手順で何かを変更した場合、1 つの Jenkinsfile を編集するだけで済みます。

  • マルチブランチ パイプライン ビルド: 新しいブランチが作成されると、Jenkins は自動的に新しい Jenkins ジョブを作成します。これは、新しいブランチが発生したときに、何十もの新しい Jenkins プロジェクトを作成する必要がなくなったことを意味します。ただし、Jenkinsfileプロジェクトのルートに配置する必要があるようです。ビルド手順に基本的な変更を加えた場合、すべての Jenkins プロジェクトを更新する必要があります。

マルチブランチ パイプライン ビルドを使用できるようにしたいのですが、リポジトリからプルする場所を指定するか、リポジトリ URL からJenkinsfileマスターを含めたいと考えています。Jenkinsfile

Jenkins マルチブランチ パイプラインでこれを行う方法はありますか?

4

1 に答える 1

5

リポジトリ間で共通のビルド ロジックがある場合は、ほとんどのパイプライン ロジックを別の groovy スクリプトに移動できます。このスクリプトは、任意の Jenkinsfile で参照できます。これは、Groovy スクリプトが別のディレクトリにあるリポジトリの別のチェックアウトをチェックしてから、標準の Groovy ロードを実行するか、またはおそらくより良い方法は、Groovy スクリプトとして Jenkins グローバル スクリプト ライブラリに保存することです。 - これは基本的に Jenkins 内の自己完結型の git リポジトリです (詳細については、 https://github.com/jenkinsci/workflow-cps-global-lib-plugin/blob/master/README.mdを参照してください)。

同様の要件があり、Git で維持され、変更時に /vars/ の下の Jenkins のグローバル スクリプト ライブラリにデプロイされたスクリプトでグローバル groovy メソッドを作成しました。たとえば、スクリプト 'scriptName.groovy' は

def someMethod(){
   //some build logic
   stage 'Some Stage'
   node(){
    //do something
   }
}

そうすれば、共通関数を任意の Jenkinsfile で呼び出すことができます。

scriptName.methodName()
于 2016-08-25T09:40:00.420 に答える