SparseCheckout в конвейере Jenkinsfile

75
7

В файле jenkins, я указал folderName через SparseCheckoutPaths, который я хочу проверить. Но вместо этого я получаю целую ветку.

   checkout([$class: 'GitSCM', 
branches: [[name: '*/branchName']],
extensions: [[$class: 'SparseCheckoutPaths', path: 'FolderName']],
userRemoteConfigs: [[credentialsId: 'someID',
url: 'git@link.git']]])

спросил(а) 2021-01-19T17:03:38+03:00 2 месяца, 3 недели назад
1
Решение
107

Вот ответ на мой вопрос. Немного о том, как это работает, есть флаг/конфигурация для git-клиента, называемого sparsecheckout, который отвечает за этот вид проверки. Кроме того, требуется также разрешенный файл. Для получения дополнительной информации смотрите здесь.

Моя проблема была синтаксисом для файла Jenkins и правильной:

checkout([$class: 'GitSCM', 
branches: [[name: '*/branchName']],
doGenerateSubmoduleConfigurations: false,
extensions: [
[$class: 'SparseCheckoutPaths', sparseCheckoutPaths:[[$class:'SparseCheckoutPath', path:'folderName/']]]
],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: 'someID',
url: 'git@link.git']]])

для получения дополнительной информации, здесь идет github-link

ответил(а) 2021-01-19T17:03:38+03:00 2 месяца, 3 недели назад
61

Ваш синтаксис выглядит неплохо, но, как видно из " jenkinsci/plugins/gitclient/CliGitAPIImpl.java ", вы указываете правильную конфигурацию?

private void sparseCheckout(@NonNull List<String> paths) throws GitException, InterruptedException {

boolean coreSparseCheckoutConfigEnable;
try {
coreSparseCheckoutConfigEnable = launchCommand("config", "core.sparsecheckout").contains("true");
} catch (GitException ge) {
coreSparseCheckoutConfigEnable = false;
}


Другими словами, является ли git config core.sparsecheckout равным true в репо, которое вы собираетесь проверить?

ответил(а) 2021-01-19T17:03:38+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема