5

マルチブランチタイプを使用している場合、プロジェクト内の単一の場所に1つのJenkinsfileしかないようです。JenkinsワークフローマルチブランチでJenkinsfileパスを指定できるようにしました

私はJenkinsfileという名前でプロジェクトのルート以外にJenkinsfileを置くことができるように設定する方法はありますか?固定設定のオプションがあるので、これは将来の機能かもしれないが、現在の状況ではすべてをコンパイルされた1つのパイプラインとして実行するオプションがないため、レポのサイズ私は同じリポジトリに対して複数のJenkinsジョブを持つことを考えています。

- Marcus

答えて

1

私は同様の問題に遭遇したと思います。

あなたができることは、別の "パイプライン"ファイルを別の場所に保存することです。 これは、同じチェックアウト場所にあることも、別々のチェックアウトにすることもできます。

このファイルでは、メソッドを定義することができます。開始するJenkinsfileが2番目のスクリプトを使用できるように、 "return this"で終了する必要があります。 例:あなたがして次の操作を行うことができます

def initialize(){ 
    wrap([$class: 'BuildUser']) { 
     env.buildUserName = "$env.BUILD_USER" 
     env.buildUserId = "$env.BUILD_USER_ID" 
     env.buildUserEmail = "$env.BUILD_USER_EMAIL" 
    } 
} 
// Has to exist with 'return this;' in order to be used as library 
return this; 

Jenkinsfileで:任意の環境変数に基づいて

def steps 
node { 
    steps = load 'MyJenkinsPipelineScript.groovy' 
    steps.initialize() 
} 

はあなたが別のファイルを読み込むことができます。 私はこれが役立つことを願っています。

関連する問題