Из Невшателя вид на Альпы гораздо хуже, так что для КДПВ не подошло :) Люцерн действительно находится далеко от Невшателя по местным меркам, аж 2 часа на поезде/машине. В Швейцарии ездить в другой город на работу/отдых — это вполне нормально. Обычно такая поездка требует меньше времени, чем на другой конец Питера или Москвы доехать, особенно на общественное транспорте.
P.S: Если кому интересно, все снимки из подборки лежат тут.
Наиболее простой способ начать с Pipeline — это Declarative Pipeline + Pipeline Editor в Blue Ocean. В этом случае многое можно собрать в UI, вообще не занимаясь написанием кода вручную.
В защиту Jenkins скажу, что доклад был рассчитан на большие проекты, где реально требуется шаринг кода между задачами и построение фреймворков. Для этого порог входа действительно высок. Для простых кейсов («чекаут/запустить Maven/опубликовать отчет») всё это не нужно, можно писать Pipeline-scripted/declarative скрипты на несколько строк. Об этом я говорил в дисклеймере и начале доклада, но видимо получилось нечётко.
Вот тут есть пример, как через Groovy Boot Hook у меня для папки инициализируются несколько Pipeline Library. В UI всё примерно так же выглядит, просто ещё одна секция в конфиге.
Наиболее интересно звучит Folder-level libraries. Но в статье есть лишь упоминание, без конкретики и примеров.
Там особо много не расскажешь. Объявления делаются не глобально, а на уровне Folder'ов. Поведение примерно такое же. Но это позволяет управлять наборами библиотек/версий для проектов и при необходимости делать CI/CD для библиотек на том же инстансе. Я у себя глобальных библиотек не держу, только в фолдерах.
В идеале в Declarative Pipeline было бы полезно и удобно иметь возможность организовывать набор из стэйджев
Сейчас это можно сделать, если стейджи описаны на Scripted Pipeline (например, в той же библиотеке). Будет что-то типа:
Начну с конца. Pipeline сейчас — не единый продукт, а open-source экосистема, которая делается многими компаниями и независимыми разработчиками. В «ядре» Pipeline есть вектор развития на стабилизацию/performance и Declarative, но на периферии все происходит довольно спонтанно. В особенности это касается Pipeline-интеграций в плагинах.
По вопросам:
как разработчики Declarative Pipeline видят в будущем структуризацию groovy кода?.. Текущее решение, использующее чекаут Git репозитория для подключения библиотек, многими воспринимается как неудобное и усложненное
Не берусь ответить за разработчиков Declarative. Есть идеи о поддержке Declarative-блоки внутри библиотек, я бы в ближайшем будущем не ожидал новых движков для шаринга кода. Собственно, а чем Вам неудобны библиотеки? Их не обязательно в Git держать, через другие плагины их можно хоть локально на мастере держать (через alpha-версию Filesystem SCM Plugin)
Подходит ли Pipeline концепт к мультирепозиторным проектам?
Подходит. В этом случае все равно надо где-то хранить код Pipeline (в самой задаче или в Jenkinsfile в одном из репозиториев), но другие репозитории могут подтягиваться через шаги типа git(). И webhook'и на все репозитории вешать можно. Более сложную логику триггеринга, конечно, будет писать тяжелее.
есть ли планы более плотной интеграции с Gradle?
AFAIK планов в roadmap нет. Есть висящий pull-request в Gradle Plugin. Он близок к завершению, и любая помощь там приветствуется (ревью/тестирование). Форвардну вопрос тем, кто сейчас разработкой Pipeline занимается.
Есть ли планы разработки плагинов для Intellij Idea с полноценной поддержкой Jenkinsfile?
Публичных планов, к сожалению, нет. А вот потребность в этом есть. Я на митапе про интеграцию с IDE немного говорил (начало слайдов). Сейчас есть условно-рабочая поддержка автодополнения и документации через GDSL, но на этом интеграции без хаков заканчиваются. Написать плагины можно (даже отладчик), были бы контрибьюторы.
Из Невшателя вид на Альпы гораздо хуже, так что для КДПВ не подошло :) Люцерн действительно находится далеко от Невшателя по местным меркам, аж 2 часа на поезде/машине. В Швейцарии ездить в другой город на работу/отдых — это вполне нормально. Обычно такая поездка требует меньше времени, чем на другой конец Питера или Москвы доехать, особенно на общественное транспорте.
P.S: Если кому интересно, все снимки из подборки лежат тут.
Там особо много не расскажешь. Объявления делаются не глобально, а на уровне Folder'ов. Поведение примерно такое же. Но это позволяет управлять наборами библиотек/версий для проектов и при необходимости делать CI/CD для библиотек на том же инстансе. Я у себя глобальных библиотек не держу, только в фолдерах.
Сейчас это можно сделать, если стейджи описаны на Scripted Pipeline (например, в той же библиотеке). Будет что-то типа:
Начну с конца. Pipeline сейчас — не единый продукт, а open-source экосистема, которая делается многими компаниями и независимыми разработчиками. В «ядре» Pipeline есть вектор развития на стабилизацию/performance и Declarative, но на периферии все происходит довольно спонтанно. В особенности это касается Pipeline-интеграций в плагинах.
По вопросам:
Не берусь ответить за разработчиков Declarative. Есть идеи о поддержке Declarative-блоки внутри библиотек, я бы в ближайшем будущем не ожидал новых движков для шаринга кода. Собственно, а чем Вам неудобны библиотеки? Их не обязательно в Git держать, через другие плагины их можно хоть локально на мастере держать (через alpha-версию Filesystem SCM Plugin)
Подходит. В этом случае все равно надо где-то хранить код Pipeline (в самой задаче или в Jenkinsfile в одном из репозиториев), но другие репозитории могут подтягиваться через шаги типа git(). И webhook'и на все репозитории вешать можно. Более сложную логику триггеринга, конечно, будет писать тяжелее.
AFAIK планов в roadmap нет. Есть висящий pull-request в Gradle Plugin. Он близок к завершению, и любая помощь там приветствуется (ревью/тестирование). Форвардну вопрос тем, кто сейчас разработкой Pipeline занимается.
Публичных планов, к сожалению, нет. А вот потребность в этом есть. Я на митапе про интеграцию с IDE немного говорил (начало слайдов). Сейчас есть условно-рабочая поддержка автодополнения и документации через GDSL, но на этом интеграции без хаков заканчиваются. Написать плагины можно (даже отладчик), были бы контрибьюторы.