Если вы когда-нибудь пытались запустить сборочную линию для Continuous Integration 1С-решений на
Jenkins, то наверное вы столкнулись и с проблемой некоторой сложности написания такой сборочной линии. Если у вас параллельно несколько проектов, то наверное даже уже задумались, как бы поменьше копипастить Jenkinsfile между проектами, да и вообще писать поменьше кода для сборки.Тех, кто еще не начал работать с Jenkins (и с системами сборки в целом) может отталкивать высокий порог входа во всю эту кухню.
Да, можно посмотреть какие-нибудь курсы, почитать разные статьи, документацию или к примеру книгу :) Но это снимет только часть проблем и вопросов. Хочется чтобы так "рас рас и готово, рас рас и готово" (с)
А что если взять, и завернуть весь Jenkinsfile и обвязку к нему в какую-нибудь библиотеку? Небольшой конфигурационный файл, и чтобы сборочная линия выглядела вот так:
pipeline1C()
Можно же? Можно!
Конечно же, идея не нова. В Jenkins есть механизмы плагинов и библиотек. Да и на Инфостарте можно найти несколько примеров таких библиотек.
В 2019 году Валерий Максимов как раз выступал на эту тему на Infostart Event 2019 Inception.
Основываясь на его идеях в 2020 году на работе я начал проект (с очень "оригинальным" названием) https://github.com/firstBitSemenovskaya/jenkins-lib , иногда скидывая ссылки на него в различные чаты в качестве примера выполнения некоторых шагов.
Его основной целью является максимальное упрощение включения нового проекта или продукта в CI-процесс. Подключили библиотеку к Jenkins, положили пару json'чиков в репозиторий и рас рас...
Что есть сейчас?
- Инициализация ИБ с созданием базы из хранилища, БСПшной миграцией и дополнительными шагами миграции;
- синтаксический контроль средствами конфигуратора;
- сценарные тесты на Vanessa Automation (временно используется dev-сборка VA Single, ждем релиза 1.2.37);
- валидация средствами EDT (при этом формат исходников остается конфигураторный);
- запуск анализа средствами SonarQube с подхватом результатов валидации EDT;
- прекрасные еще не открытые баги;
- минимум документации;
- куча допущений, ограничений, говнокода и желания продолжать разработку.
В общем, типичный разваливающийся (зачеркнуто) опенсорс, все как вы любите.
От себя добавлю, что мои подшефные проекты я уже перевел на эту библиотеку. По сути на себе я ее и обкатываю.
Если вам интересна эта тема, и вы хотели бы попробовать - добро пожаловать в репозиторий, пробуйте запуститься, регистрируйте хотелки и ошибки, может быть даже помогите кодом (в основном код на groovy + немного java). Приходите беседовать в чатики и делиться впечатлениями.
Еще раз ссылочка: https://github.com/firstBitSemenovskaya/jenkins-lib