短い答えは:はできませんmultibranch pipeline
で。マルチブランチパイプラインは、特定のパイプラインをPipeline script from SCM
スタイルで実行するよう設計されています(少なくとも今のところは、プロジェクトのルートに固定Jenkinsfile
)。
しかし、マルチブランチ用に作成されたMulti-Branch Projectプラグインfreestyleプロジェクトを使用することはできます。まず、multibranch pipeline configuration
のようにmultibranch freestyle configuration
を定義する必要があります。以下に示すように、この新しい項目を選択し :
を、それはあなたの構成の名前とするサブプロジェクトとフォルダが作成されます。すなわちこのタイプの構成は、multibranch pipeline
タイプとまったく同じように動作します各ブランチは自動的に検出されます。
実装は、ケーキの一部でなければなりません:あなたは標準で行うよう
- は、ビルド/ビルド後の一環として、マルチブランチの構成
- コール別のビルドであなたの
SCM
リポジトリを指定しますフリースタイルのプロジェクトですが、パラメータ化されたジョブ(build-job
と呼ぶ)を呼び出して、Git URLと現在のブランチのようなリポジトリ情報を与える必要があります($GIT_URL
と$GIT_BRANCH
をこの目的のために使用できます)
build-job
では、SCMからチェックアウトされたインラインパイプラインまたはパイプラインスクリプトを定義するだけで、このスクリプト内でSCMチェックアウトを行い、構築する必要がある手順を実行します。 build-job
パイプラインの内容の例:
もちろん
node() {
stage 'Checkout'
checkout scm: [$class: 'GitSCM', branches: [[name: '*/${GIT_BRANCH}']], userRemoteConfigs: [[url: '${GIT_URL}']]]
stage 'Build'
// Build steps...
}
あなたの異なるmultibranchesプロジェクトが少し異なる扱いをする必要がある場合、あなたはまた、順番に、一般的なbuild-job
パイプラインを呼び出すと、中間のプロジェクト(のはbuild-project-A
、build-project-B
、...を言わせて))
を使用することができます
このソリューションの主な欠点の1つは、すべてのビルドを担当するジョブが1つしかなく、デバッグが難しいことです。成功/エラーが発生した場合でも、マルチブランチプロジェクトは青/赤になりますが、ビルドの実際の問題を見つけるには、build-job
に戻る必要があります。
フリースタイルのマルチブランチオプションは正式に廃止されたようです。 Jenkinsfileは現在、Jenkinsfileが存在しないプロジェクト用にマルチブランチビルドを行うオプションを提供していません。それは本当に吸う – kert