Быстрая разработка сценариев Jenkins Pipeline - PullRequest
3 голосов
/ 05 июня 2019

Есть ли способ написать сценарий Jenkins Pipeline в интерактивном режиме, например, запустить другой Groovy в консоли сценариев Jenkins?В идеале мне нужно, чтобы «pipe groovysh in Jenkins».

AFAICS, консоль сценариев не настраивала среду, необходимую для работы конвейера, поэтому вы не можете просто запускать специальные фрагменты конвейера.рабочих мест там.

Мне известна опция «Воспроизведение», но она слишком медленная для удаленного Jenkins и плохо интегрируется в VCS.

Справочная информация: Как я делаюВ последнее время я много работаю над конвейерами Jenkins, и цикл испытаний становится болезненным.Иронично, правда.Зафиксируйте, нажмите на рабочую ветвь, «создайте с параметрами» (или перестройте) задание, указывающее на рабочую ветвь для сценария pipleine, дождитесь результатов, просмотрите консольный журнал, повторите.

Утомительно.

Я немного улучшил его, благодаря автоматическому запуску моей тестовой работы при подталкивании к моему конвейерному репо, но это все еще довольно неуклюже.

Запустить локальный Jenkins для тестирования не очень практично - конвейерынужно взаимодействовать с частным реестром Docker, нужна конкретная конфигурация плагина, нужны определенные типы рабочих и т. д. Это также не очень помогает в процессе обработки.

Так как другие могут сделать это лучше?jenkins-cli пульт дистанционного управления?Другое

1 Ответ

0 голосов
/ 06 июня 2019

Есть два способа работы с конвейерами, которые я использовал, чтобы облегчить болезненный цикл разработки-теста-сбоя-исправления, который вы испытываете:

1) Метод тестирования на основе модульного теста

Напишите конвейеры в рамках модульного теста, где все полностью смоделировано с помощью IDE, например IntelliJ IDEA.Создайте модульные тесты, разработанные в Groovy, используя Spock или JUnit и используя тестовую среду JenkinsPipelineUnit .Это может быть хорошо, если вам удобно писать юнит-тесты и издеваться, но многие люди не так.У меня это работало для большинства моих трубопроводов.

2) Использование подключаемого модуля SCM для Docker и файловой системы

Раскрутите Jenkins в Docker на своей машине разработки, настроив его как можно ближе к вашей производственной системе, используя Конфигурация Jenkins в виде кода (JCasC) .В контейнере Docker, в котором работает Jenkins map / bind, смонтируйте каталог в хост-системе, содержащий весь код конвейера, в контейнер Docker.Затем вы можете использовать плагин Jenkins под названием " Плагин файловой системы SCM ".Этот плагин FS SCM позволит вам настроить конвейерные задания в Dockerized Jenkins, чтобы получить их конвейерный код непосредственно из файловой системы на вашем хосте, сопоставленной с контейнером Docker.Итак, что вы делаете, это открываете конвейерный код в IDE на вашей хост-системе, редактируете сколько хотите и выполняете задание в Dockerized Jenkins без необходимости фиксации.Затем, когда закончите с отладкой / разработкой, зафиксируйте свой код для производственного сервера.Этот метод основан на работе и идеях Олега Ненашева из CloudBees, и стоит взглянуть на его презентацию «Как разработать трубопровод Jenkins на месте» .Чтобы настроить Jenkins в Docker, большая часть которого сконфигурирована из YAML, просмотрите файл JCasC README , а также проект Jenkins Docker , чтобы узнать, как настроить установленные плагины.

Вы также можете получить некоторую полезную информацию по этому вопросу в специальной группе по интересам Jenkins Pipeline Authoring .

...