web-dev-qa-db-ja.com

サブフォルダーでJenkinsfileを検出する方法

独立した2つのフォルダーを持つプロジェクトがあり、Jenkinsで個別のビルドが必要です(v2.74を実行)

私の構造は

folder
├── project1
│   └── Jenkinsfile
└── project2
    └── Jenkinsfile

Jenkinsで[組織のスキャン]をクリックしても、サブディレクトリ内のJenkinsファイルが検出されません。

「スキャン組織ログ」のサンプルを次に示します。

Proposing kg-pipeline
Examining my-test-project

  Checking branches...

  Getting remote branches...

    Checking branch jenkins
      ‘Jenkinsfile’ not found
    Does not meet criteria

    Checking branch master
      ‘Jenkinsfile’ not found
    Does not meet criteria

  2 branches were processed

Finished examining my-test-project

組織をスキャンしてJenkinsfilesでブランチを見つけるジョブの構成には触れませんでした。これがプロジェクトの現在の設定です

Jenkinsfile discoverability configuration

私の質問は、各フォルダーを個別に表示するようにJenkinsを構成するにはどうすればよいですか?このように設定されたサンプルプロジェクトへのリンクにも興味があります。

7

簡単な解決策があります。

  1. jENKINS_URL/job/JOB_NAME/configureに移動します
  2. Build Configurationの下で、Modeby Jenkinsfileを選択します
  3. Script Pathの下で、DIR_NAME/Jenkinsfileに設定します

たとえば、Jenkinsfileがsrcディレクトリ内にある場合は、それをsrc/Jenkinsfileに設定すると、JenkinsはJenkinsfileを見つけることができます。

8
Ray Kim

現在、同じことを設定しようとしています-完全な答えではありませんが、これは役立つかもしれません:

this によると、それぞれが「Jenkinsfileによる」構成モードを持つ2つのマルチブランチパイプラインプロジェクトをセットアップできるはずです。

Jeninsfileのカスタムパスの使用のサポートが JENKINS-34561 に追加されました

1
Martin

Jenkinsファイルへのパスを使用して、ProjectRecognizersの下に複数の「PipelineJenkinsfile」を追加できます。

0
Gunjan

残念ながら、プロジェクトルートのサブディレクトリでJenkinsfilesをスキャンするアプローチはわかりません。

load step を使用して、プロジェクトルートのJenkinsfileのサブディレクトリからJenkinsfilesをロードすることで、目的の動作を実現できる場合があります。これにより、両方のプロジェクトのビルドが1つのパイプラインとして表示されますが、これらのプロジェクトを 並列ノード でビルドすることをお勧めします。

0
tim