Дженкинс поделился библиотекой с intellij - PullRequest
0 голосов
/ 18 ноября 2018

Я начал внедрять разделяемые библиотеки Jenkins и пытался записать свой jenkinsfile с intellij в качестве своего идеала.

Как получить функции из общего репозитория lib в другой репозиторий, в котором находится файл jenkins.

Просто чтобы уточнить, что у меня работает, при запуске из jenkins, но мне нужен простой способ написать свой файл jenkins с использованием функций из репозитория shared-lib.

Ответы [ 3 ]

0 голосов
/ 20 ноября 2018

У меня был хороший опыт использования jenkins-pipe-shared-library-gradle-plugin от mkobit в сочетании с IntelliJ IDEA.

Некоторые замечательные возможности этого плагина:

  • Базовая компиляция Groovy для проверки исходного кода
  • Юнит-тест с использованием Jenkins Pipeline Unit
  • Использование плагинаи базовые классы Jenkins в библиотеке
  • @ Grab поддержка библиотек (тестирование ограничено тестами интеграции в стиле @JenkinsRule из-за проблемы)
  • @ Аннотация NonCPS может использоваться в основном исходном коде
  • Интеграционный тест с использованием Jenkins Test Harness

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

Существует также пример репозитория для демонстрации использования этого плагина.

0 голосов
/ 27 февраля 2019

Вы можете попробовать использовать IntelliJ IDEA GSDL , предоставленный Jenkins в вашей IDE.

Загрузите содержимое из http://<JENKINS>/job/<PIPELINE_JOB>/pipeline-syntax/gdsl в файл pipline.gdsl и добавьте этот файл в свойИсходная папка проектов IntelliJ Jenkins Pipeline .(Вы также можете добавить этот файл в список игнорирования SCM.)

Автозаполнение до и после добавления файла GDSL:

autocompletion without GSDL autocompletion with GSDL

В Jenkins UI вы обнаружите этот файл GSDL в вашем конвейерном проекте в разделе "Синтаксис конвейера> IntelliJ IDEA GSDL".

Jenkins GSDL

Тем не менее, я нашел некоторые предупреждения с этим решением, которые требовали от меня вручную редактировать файл pipeline.gsdl, но это могло быть связано сМоя не современная установка Jenkins (?):

  • настраиваемые глобальные переменные (из папки /var) рассматриваются в файле GSDL, но методы, определенные для этой переменной не.
  • шаг parallel не был экспортирован должным образом из-за ошибки (?) в ParallelStep классе

(Источник знаний: Блог Вячеслава Гайдаржи .)

0 голосов
/ 19 ноября 2018

Вы можете создать общую библиотеку jenkins как проект maven (или gradle, это не имеет значения) с определенным идентификатором группы, идентификатором артефакта и версией.Вы должны выполнить 'mvn install' всякий раз, когда вы меняете свою разделяемую библиотеку (эта цель использовалась для добавления артефакта jar совместно используемой библиотеки в локальный репозиторий maven).В другом хранилище, в котором вы будете писать свой файл jenkins, вы также должны создать проект maven и просто добавить свою общую библиотеку в качестве зависимости maven.И теперь вы можете использовать код из общей библиотеки в своем файле jenkins.

...