#git #jenkins #plugins #version-control #checkout
#git #дженкинс #Плагины #контроль версий #Оформить покупку
Вопрос:
Я много искал, плагин GitSCM и stackoverflow и т. Д., Но не смог найти ответа. Я хочу проверить репозиторий Git с помощью плагина Jenkins GitSCM в одну конкретную папку, скажем, «MyFolder».
Итак, если мой репозиторий xyz.git
, то после проверки все файлы репозитория должны быть внутри MyFolder/*
, а НЕ внутри MyFolder/xyz/*
.
Чтобы понять больше, я хочу достичь ниже (при условии, что репозиторий xyz.git) с помощью плагина Jenkins GitSCM. Приведенная ниже команда будет извлекать файлы, MyFolder
исключая корневую папку xyz
git clone <REPOSITORY> -- MyFolder
и приведенная ниже команда будет проверять файлы в папке xyz
git clone <REPOSITORY>
Для справки я работаю над приведенной ниже конфигурацией
checkout([$class: 'GitSCM', branches: [[name: gitDefaultBranch]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CleanBeforeCheckout'],[$class: 'SubmoduleOption', disableSubmodules: false, parentCredentials: true, recursiveSubmodules: true, reference: '', trackingSubmodules: false]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: gitCreds, url: gitProjectUrl]]])
Пожалуйста, предложите.
Информация о версиях:
- Ядро Jenkins 2.121.1
- Конвейер: декларативный 1.3.2
- Конвейер: Groovy 2.55
- Плагин Git 3.9.1
- org.jenkins-ci.plugins: scm-api: 2.3.0
- org.jenkins-ci.plugins.рабочий процесс: рабочий процесс-scm-шаг: 2.7
Ответ №1:
Вы можете использовать [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'MyFolder/']]
код оформления заказа.
Что-то вроде приведенного ниже:-
checkout([ $class: 'GitSCM',
branches: [[name: gitDefaultBranch]],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanBeforeCheckout'],
[$class: 'SubmoduleOption',
disableSubmodules: false,
parentCredentials: true,
recursiveSubmodules: true,
reference: '',
trackingSubmodules: false],
[$class: 'RelativeTargetDirectory',
relativeTargetDir: 'MyFolder/']],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: gitCreds, url: gitProjectUrl]]
])
Комментарии:
1. переформатирован . Надеюсь, я не перепутал ваш ответ.
2. Это не очень полезно для тех, кто не так хорошо знаком с groovy. Пример был бы более полезным.
$class
Конструкция для меня странная, а также тот факт, что она выглядитRelativeTargetDirectory
так, как будто сама по себе является аргументом дляextensions
(?)