Поддержка IDE разделяемых библиотек Jenkinsfile

Поскольку мой Jenkinsfile содержит почти 2000 строк кода (скриптовые конвейеры), очевидно, что лучше реорганизовать его для использования общих библиотек. То, что меня останавливает, - это способ импорта этих библиотек в Jenkinsfile. Либо с использованием нотации @Library для импорта глобальной настроенной библиотеки, либо с использованием шага библиотеки для динамической загрузки библиотеки, я теряю завершение кода и возможность CTRL + щелкните метод \ класс \ переменную.

Я что-то пропустил? Как решить эту проблему? Очень неприятно возвращаться на 20 лет назад и искать вручную какой-либо метод по всей базе кода вместо того, чтобы просто щелкнуть его в среде IDE, чтобы найти его реализацию.

"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
1
0
559
1

Ответы 1

вы можете сделать несколько вещей. Прежде всего, если ваши библиотеки имеют расширение .groovy, используйте класс внутри, например:

class NotificationLib() {
}

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

Надеюсь, это помогло.

Спасибо за ваши предложения. К сожалению, я обнаружил, что не могу использовать глобальную библиотеку, так как хочу сохранить скрипты в ветвях, чтобы иметь возможность вносить там изменения. Так что мой единственный вариант - использовать динамический шаг «библиотека», который вообще не имеет импорта. Итак, в основном с точки зрения IDE (Intellij IDEA с Groovy SDK) я получаю кучу файлов, которые вообще не связаны. И чем больше я разбиваю их на подходящие шаги, тем хуже у меня получается навигация.

demergy 26.03.2018 10:27

вы храните библиотеки в том же репозитории, где находятся фактические файлы конвейеров?

BigGinDaHouse 26.03.2018 21:22

Да, конвейеры находятся в одном репозитории только на один уровень выше по отношению к библиотеке. Но с точки зрения воли это не имеет значения. Мы пришли к следующему: 1. wiki.jenkins.io/display/JENKINS/… позволяет запускать все, что нам нужно, из динамической библиотеки. 2. IntelliJ Idea отлично работает с завершением и CTRL + щелчком, когда корневой каталог помечен как корень источников.

demergy 23.07.2018 16:16

Другие вопросы по теме