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

Используя трубопровод Дженкинса для проверки нескольких репозиторий git в одну и ту же работу

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

Несколько SCM теперь амортизируются, и текст рекомендует переходить на конвейеры. Я попытался, но я не могу понять, как заставить его работать.

Вот структура каталогов, которую мне интересно видеть на верхнем уровне моего каталога заданий Jenkins:

$ ls
Combination
CombinationBuilder
CombinationResults

Каждый из этих трех подкаталогов имеет один репозиторий git. С помощью нескольких SCM я использовал git, а затем добавил поведение "checkout to the subdirectory". Вот моя попытка с конвейером script:

node('ATLAS && Linux') {
    sh('[ -e CalibrationResults ] || mkdir CalibrationResults')
    sh('cd CalibrationResults')
    git url: 'https://github.com/AtlasBID/CalibrationResults.git'
    sh('cd ..')
    sh('[ -e Combination ] || mkdir Combination')
    sh('cd Combination')
    git url: 'https://github.com/AtlasBID/Combination.git'
    sh('cd ..')
    sh('[ -e CombinationBuilder ] || mkdir CombinationBuilder')
    sh('cd CombinationBuilder')
    git url: 'https://github.com/AtlasBID/CombinationBuilder.git'
    sh 'cd ..'

    sh('ls')
    sh('. CombinationBuilder/build.sh')
}

Однако команда git, кажется, выполняется в каталоге верхнего уровня рабочей области (что имеет смысл), и в соответствии с синтаксисом тоже не похоже на checkout-to-sub-directory поведение.

4b9b3361

Ответ 1

Вы можете использовать команду dir для выполнения шага конвейера в подкаталоге:

node('ATLAS && Linux') {
    dir('CalibrationResults') {
        git url: 'https://github.com/AtlasBID/CalibrationResults.git'
    }
    dir('Combination') {
        git url: 'https://github.com/AtlasBID/Combination.git'
    }
    dir('CombinationBuilder') {
        git url: 'https://github.com/AtlasBID/CombinationBuilder.git'
    }

    sh('ls')
    sh('. CombinationBuilder/build.sh')
}