SparseCheckout в конвейере Jenkinsfile
В файле jenkins, я указал folderName через SparseCheckoutPaths, который я хочу проверить. Но вместо этого я получаю целую ветку.
checkout([$class: 'GitSCM',
branches: [[name: '*/branchName']],
extensions: [[$class: 'SparseCheckoutPaths', path: 'FolderName']],
userRemoteConfigs: [[credentialsId: 'someID',
url: 'git@link.git']]])
Вот ответ на мой вопрос. Немного о том, как это работает, есть флаг/конфигурация для 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
Ваш синтаксис выглядит неплохо, но, как видно из " 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 в репо, которое вы собираетесь проверить?