У меня есть большой репозиторий в Git. Как мне создать задание в Jenkins, которое проверяет только одну подпапку из проекта?
Jenkins и Git разреженные проверки
Ответы (3)
Плагин Jenkins Git поддерживает разреженные проверки, так как git -плагин 2.1.0 (апрель 2014 г.). Для этой функции вам понадобится git >= 1.7.0. Он находится в разделе «Дополнительные действия» -> «Разреженные пути оформления».
См. выпуск Jira JENKINS-21809.
/B/
для каталога B. @ OK999: Попробуйте использовать обратную косую черту \
перед пробелом или любым специальным символом в имени файла или папки. Пример: /Path/To/My Folder
будет похоже на /Path/To/My\ Folder
или попробуйте указать путь между кавычками /Path/To/My Folder.
- person bh4r4th; 18.07.2018
Вы можете использовать функцию Git разреженного извлечения. Обратите внимание, что Git по-прежнему клонирует весь репозиторий на локальный диск. Однако это не так уж плохо, потому что он сжат.
- Создайте новую работу в Jenkins, установите репозиторий Git в разделе «Управление исходным кодом».
- Создайте проект. Это клонирует весь репозиторий на локальный диск.
- Откройте папку рабочей области проектов, удалите там все, кроме папки .git.
Откройте оболочку Git для папки рабочей области проекта. Включить разреженную проверку:
git config core.sparsecheckout true
Обновление рабочего дерева:
git read-tree -mu HEAD
Создайте файл
sparse-checkout
в папке .git/info. Добавьте путь к подпапке, которую вы хотите извлечь из этого файла, например так (обратите внимание на косую черту):folder/to/include/
Снова создайте проект. На этот раз в папке рабочей области должна появиться только одна подпапка.
У вас может быть собственный шаг, который просто использует
git checkout your-branch -- the/desired/path anthother/desired/path
Чтобы очистить его, вы можете просто rm -rf
рабочую папку и воссоздать ее с помощью mkdir workingdir
. Это потребует от вас указать эту опцию на уровне git приведенной выше команды:
git --working-dir="/path/to/workingdir" checkout your-branch -- the/desired/path anthother/desired/path
Все зависит от того, насколько хорошо вы знаете Дженкинса.