Подтвердить что ты не робот

Jenkinsfile с двумя репозиториями git

Я использую подключаемый модуль Jenkins с файлом Jenkins.

В одном репозитории, называемом vms.git, у меня есть файл Jenkins и приложение, которое он создает.

У меня есть другой репозиторий, называемый deploy.git, который содержит сценарии, которые я хочу использовать для развертывания приложения в vms.git.

В настоящий момент мой Jenkinsfile выглядит так:

node {
  stage 'build'
  checkout scm

и я определяю репозиторий vms.git в конфигурации задания.

Итак, что бы я хотел сделать, это проверить оба репозитория, а затем использовать Jenkinsfile в vms.git, чтобы определить остальную часть сборки. Я хочу повторно использовать сценарии deploy.git в других конвейерах, поэтому я не хочу размещать там файл Jenkins.

4b9b3361

Ответ 1

Вы можете проверить несколько каталогов с помощью checkout, но вам нужно указать каталог, в котором вы хотите проверить это. Вы можете создавать фрагменты с использованием дженкинсов (поле "Генератор снизу" ниже script). Выберите checkout, следующий репозиторий git, а в дополнительных версиях выберите: checkout в подкаталог.

Когда у вас будет 2 репозитория, вы можете загрузить script из репозитория, в котором вы хотите использовать usin load. Пример:

node {
    // first repository
    checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'subdirectory1']], submoduleCfg: [], userRemoteConfigs: [[url: 'repo1.git']]])
    // second repository
    checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'subdirectory2']], submoduleCfg: [], userRemoteConfigs: [[url: 'repo2.git']]])
    // run first script
    load 'subdirectory1/Jenkinsfile'
    // run second script
    load 'subdirectory2/Jenkinsfile'
}