Проверка GitSCM Дженкинса в определенной папке

#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 (?)