この質問は、複数のリポジトリを持つJenkinsジョブ自動トリガーに関連しています。
Jenkinsfileでチェックアウトする3つのリポジトリを定義しました。
node('slave'){
git clone github.com/owner/abc.git -b ${env.BRANCH_NAME}
git clone github.com/owner/def.git -b ${env.BRANCH_NAME}
git clone github.com/owner/ghi.git -b ${env.BRANCH_NAME}
}
Github組織プラグインを使用してJenkinsジョブを構成しました。
この場合、私のJenkinsfileはabcリポジトリにあり、Jenkins自動トリガーはabcリポジトリで正常に機能しています。他のリポジトリでは機能しません。
とにかく、2つ以上のリポジトリの自動トリガーを定義する方法はありますか?
2つ以上のリポジトリのジョブを自動トリガーできるプラグインはありますか?
Jenkinsfileで「チェックアウトscm」を別の方法で定義する必要がありますか?
はい、Pipeline script from SCM
オプションをパイプラインジョブで指定し、複数のリポジトリを指定します(Add Repository
ボタン)、3つのリポジトリの同じブランチを監視できると想定します。
この構成(そしてもちろんPoll SCM
オプションがアクティブ化されている場合)、3つのリポジトリのいずれかに変更が加えられるたびにビルドがトリガーされます。
この解決策に関するいくつかのヒント:
Jenkinsfile
各リポジトリにが必要ですSCM polls
結果は予測不可能です(先ほどコミットした2つのプロジェクトのどちらかが最終的にビルドされる可能性があります)。したがって、ビルドするプロジェクトに依存しないを実行する必要があります。node {
// --- Load the generic pipeline ---
checkout scm: [$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'http://github/owner/pipeline-repo.git']]]
load 'common-pipeline.groovy'
}()
common-pipeline.groovy
脚本:{ ->
node() {
git clone github.com/owner/abc.git
git clone github.com/owner/def.git
git clone github.com/owner/ghi.git
// Whatever you do with your 3 repos...
}
}