Обзор состояния Jenkins и текущих проектов: Configuration as Code, Cloud Native Jenkins, Jenkins X, Jenkins Essentials, поддержка Java 10, и многое другое
теперь со Script Security ◦ Патч Commons HttpClient 3.1 в ядре – риск MiTM ◦ XSS в автодополнении джобов ◦ Валидация части паролей через GET ◦Апгрейд Jetty, SPDY больше не поддерживается ◦Протоколы JNLP 1/2/3 больше не поддерживаются ◦… Что нового? > Ядро Плагины JEP События https://jenkins.io/doc/upgrade-guide/ https://jenkins.io/changelog-stable/ https://jenkins.io/security/advisory/2017-10-11/ https://jenkins.io/security/advisory/2017-11-08/ Предыдущая попытка 4
Hooks: init() JCasC PLUGINS_STARTED . . . • Groovy-хуки вызываются после JCasC • Тюнинг конфигурации: • Workaround для отсутствующих интеграций • Динамические скрипты • Прочитать volume и сделать что-то • Конфигурирование задач и миграция данных 17
Легко освоить Не все плагины поддерживаются Нет отката конфигураций Изменение конфигов без рестарта Отладка затруднена Export from UI CLI and REST API для конфигурации Только статическая конфигурация Groovy – универсальный ООП язык Тяжело освоить Может сделать всё Совместим если API стабильно Нет отката конфигураций Апдейт через рестарт Нет экспорта конфигураций Отладка через IDE 19
API в Ядре Jenkins и Pipeline Реализация: Artifact Manager for S3 ◦https://github.com/jenkinsci/artifact-manager-s3-plugin ◦Интеграция с Pipeline ◦Прозрачная поддержка archive/unarchive ◦Прозрачная поддержка stash/unstash 23
мастере Build Console • Все логи идут на диск мастера • Агенты отправляют логи на мастер • Логи для консоли… читаются с диска (и progressive, да) Мастер 25
(Kubernetes plugin) ◦Nexus, charmuseum, monocular ◦Окружения: ◦ Локальное окружение для разработки ◦ Staging ◦ Интеграция с Production ◦Интеграция с IDE 35
Center ◦Можно скачать с Artifactory ◦Поддержка в официальных образах Docker # plugins.txt workflow-aggregator:2.5 incrementals;org.jenkins-ci.plugins.workflow;2.19-rc289.d09828a05a74 configuration-as-code:experimental 47
для CI/CD плагинов в ci.Jenkins.io ◦ Pipeline Library ◦ https://github.com/jenkins-infra/pipeline-library/blob/master/vars/essentialsTest.groovy ◦Интеграционные тесты во время сборки плагинов ◦ Plugin Compat Tester ◦ Acceptance Test Harness 48
не так страшна, как казалась • Апдейты библиотек, и “все заработало” • Проблемы с dev-тулами: Multi-release JAR, ASM • Illegal Reflective Access (setAccessible(true))… • Multi-release JAR есть, а Multi-release WAR нет • Другое: JAXB в Java 11, Java Web Start для агентов • Jenkins JEP-211: General Availability в Jenkins 55