Ответ 1
Да, вы можете сделать это с помощью параметра Pipeline script from SCM
в задании конвейера, указав несколько репозиториев (нажмите кнопку Add Repository
), предположив, что вы можете наблюдать за той же ветвью для ваших 3-х репозиториев, что, кажется, ваше дело.
С этой конфигурацией (и, конечно, опция Poll SCM
активирована), сборка будет запускаться каждый раз, когда будет внесено изменение в один из трех ваших репозиториев.
Несколько советов по этому решению:
- Вам нужно a
Jenkinsfile
в каждом репозитории - Если вы совершили более одного проекта между двумя
SCM polls
, результат будет непредсказуемым (либо один из двух проектов, которые вы только что зафиксировали, может, наконец, построить), поэтому вы должны не зависеть от того, какой проект будет построен. - Чтобы решить предыдущую точку, а также избежать дублирования кода, вы должны просто загрузить общий script из каждого вашего файла Jenkins, например:
Jenkinsfile в abc/def/ghi:
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
script:
{ ->
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...
}
}