Jenkins GitSCM оформить заказ в определенной папке - PullRequest
1 голос
/ 11 апреля 2019

Я много искал, плагин GitSCM, стекопоток и т. Д., Но не смог найти ответ. Я хочу оформить репозиторий 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 core
  • Трубопровод: декларативный 1.3.2
  • Трубопровод: Groovy 2.55
  • Плагин Git 3.9.1
  • org.jenkins-ci.plugins: scm-api: 2.3.0
  • org.jenkins-ci.plugins.workflow: рабочий-SCM-шаг: 2,7

1 Ответ

1 голос
/ 11 апреля 2019

Вы можете использовать [[$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]],
         submoduleCfg: [],
         [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'MyFolder/']],
         userRemoteConfigs: [[credentialsId: gitCreds, url: gitProjectUrl]]
       ])
...