Дженкинс: Как извлечь два URL-адреса репозитория в одно и то же рабочее пространство, не удаляя первый? - PullRequest
6 голосов
/ 30 января 2012

наша структура проекта была разделена. С одной стороны, есть папка / plugins, содержащая все основные проекты плагинов. С другой стороны, у нас есть папка / tests, содержащая все фрагментированные проекты, являющиеся модульными тестами для соответствующих им основных проектов плагинов.

Дженкинс позволяет мне проверять несколько репозиториев и даже одну и ту же папку в рабочей области.

Проблема в том, что первая извлечение удаляется при извлечении второго URL.

/ plugins помещается в каталог рабочей области, затем каталог рабочей области «очищается»:

Cleaning local Directory .

Затем извлекается второй каталог / tests.

Конечно, я хочу, чтобы содержимое обеих папок помещалось в один каталог рабочей области. Как я могу это сделать?

Ответы [ 2 ]

5 голосов
/ 30 января 2012

Предполагая, что вы используете Subversion для извлечения ваших проектов, вам нужно указать «Локальный каталог модулей» для чего-то отличного от значения по умолчанию для каждого пути, который вы проверяете.

Например;

Если у вас есть svn: // myrepo / myproject / plugins и svn: // myrepo / myproject / tests, конфигурация будет выглядеть следующим образом:

Modules:
Repository URL : svn://myrepo/myproject/plugins
Local module directory (optional) : plugins

Repository URL : svn://myrepo/myproject/tests
Local module directory (optional) : tests

Это сообщит Jenkins, чтоу него есть два пути для извлечения и в отдельных местах.

Если вы пытаетесь оформить проект в подпапку другой рабочей копии, вам, возможно, придется использовать svn: externals в родительском каталоге.

0 голосов
/ 19 декабря 2016

В новом конвейере Jenkins 2.0 (ранее назывался плагин Workflow) это делается по-другому для:

  • Основного репозитория
  • Другие дополнительные репозитории

Здесь я конкретно имею в виду версию Multibranch Pipeline 2.9.

Основной репозиторий

Это репозиторий, содержащий ваш Jenkinsfile.

На экране Настроить для своего конвейерного проекта введите имя своего хранилища и т. Д.

Не использовать Дополнительные действия> Извлечь в подкаталог .Это поместит ваш Jenkinsfile в подкаталог , где Jenkins не сможет его найти .

В Jenkinsfile проверьте основной репозиторий в подкаталоге, используя dir():

dir('subDir') {
    checkout scm
}

Дополнительные репозитории

Если вы хотите проверить больше репозиториев, используйте генератор Синтаксис конвейера для автоматической генерации фрагмента кода Groovy.

На экране Настройка для проекта конвейера:

  1. Выберите Синтаксис конвейера .В раскрывающемся меню Sample Step выберите checkout: General SCM .
  2. Выберите систему SCM, например, Git .Введите обычную информацию о вашем хранилище или хранилище.
  3. Обратите внимание, что в многоотраслевом конвейере переменная среды env.BRANCH_NAME содержит имя ветви основного хранилища.
  4. В ДополнительноПоведение В раскрывающемся меню выберите Выйдите в подкаталог
  5. Нажмите Создать Groovy .Jenkins отобразит фрагмент кода Groovy, соответствующий указанной вами проверке SCM.
  6. Скопируйте этот код в сценарий конвейера или Jenkinsfile.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...