Дженкинс (программное обеспечение)
![]() | |
![]() | |
Оригинальный автор(ы) | Косуке Кавагути [1] |
---|---|
Первоначальный выпуск | 2 февраля 2011 г. [2] |
Стабильная версия | 2.468 [3] ![]() |
Репозиторий | |
Написано в | Ява |
Платформа | Ява 11 , Ява 17 |
Тип | Непрерывная доставка |
Лицензия | МОЯ лицензия [4] [5] |
Веб-сайт | www ![]() |
Jenkins — с открытым исходным кодом автоматизации сервер . Он помогает автоматизировать части разработки программного обеспечения, связанные со сборкой , тестированием и развертыванием , облегчая непрерывную интеграцию и непрерывную доставку . Это серверная система, работающая в контейнерах сервлетов, таких как Apache Tomcat . Он поддерживает контроля версий инструменты , включая AccuRev , CVS , Subversion , Git , Mercurial , Perforce , ClearCase и RTC , и может выполнять проекты на основе Apache Ant , Apache Maven и sbt , а также произвольные сценарии оболочки Windows и пакетные команды .
История
[ редактировать ]Проект Jenkins изначально назывался Hudson и был переименован в 2011 году после спора с Oracle , которая отделила проект и заявила права на название проекта. Ответвление Oracle, Hudson , некоторое время продолжало разрабатываться, прежде чем было передано в дар Eclipse Foundation . Oracle Hudson больше не поддерживается [6] [7] и был объявлен устаревшим в феврале 2017 года. [8]
Примерно в 2007 году Hudson стал известен как лучшая альтернатива Cruise Control и другим серверам сборки с открытым исходным кодом. [1] [9] На конференции JavaOne в мае 2008 года это программное обеспечение получило награду Duke's Choice Award в категории «Решения для разработчиков». [10]
В ноябре 2010 года, после приобретения Sun Microsystems компанией Oracle , в сообществе Hudson возникла проблема, связанная с используемой инфраструктурой, которая выросла и стала включать вопросы по управлению и контролю со стороны Oracle. [11] Переговоры между основными участниками проекта и Oracle состоялись, и, хотя существовало множество областей соглашения, ключевым камнем преткновения было зарегистрированное торговое название «Hudson» после того, как Oracle заявила о своих правах на это имя и подала заявку на регистрацию товарного знака в декабре 2010 года. В результате 11 января 2011 года было объявлено о голосовании за изменение названия проекта с «Гудзон» на «Дженкинс». Предложение было одобрено подавляющим большинством голосов сообщества 29 января 2011 года, в результате чего был создан проект Jenkins. [12]
1 февраля 2011 года Oracle заявила, что намерена продолжить разработку Hudson, и считает Jenkins форком, а не переименованием. Таким образом, Дженкинс и Хадсон продолжили работу как два независимых проекта. [13] каждый утверждал, что другой был вилкой. По состоянию на июнь 2019 года в организации Дженкинса на GitHub было 667 участников проекта и около 2200 общедоступных репозиториев. [14] по сравнению с 28 участниками проекта Hudson и 20 общедоступными репозиториями с последним обновлением в 2016 году. [15]
В 2011 году создатель Косуке Кавагути получил премию O'Reilly Open Source Award за свою работу над проектом Hudson/Jenkins. [16]
20 апреля 2016 г. была выпущена версия 2 с Pipeline . включенным по умолчанию плагином [17] Плагин позволяет писать инструкции сборки с использованием предметно-ориентированного языка на основе Apache Groovy .
Дженкинс заменил Хадсона с 8 февраля 2017 года в Eclipse. [8]
В марте 2018 года Jenkins X был публично представлен программный проект для Kubernetes . [18] с поддержкой различных поставщиков облачных услуг, включая AWS EKS и других. [19]
Строит
[ редактировать ]Сборки могут быть инициированы различными способами, например:
- вебхук, который срабатывает при принудительной фиксации в системе контроля версий
- планирование с помощью cron -подобного механизма
- запрос определенного URL-адреса сборки .
- после завершения других сборок в очереди
- вызывается другими сборками
Плагины
[ редактировать ]плагины Для Jenkins были выпущены , которые расширяют его возможности для проектов, написанных на языках, отличных от Java . Доступны плагины для интеграции Jenkins с большинством систем контроля версий и базами данных ошибок. Многие инструменты сборки поддерживаются через соответствующие плагины. Плагины также могут изменить внешний вид Jenkins или добавить новые функции. Существует набор плагинов, предназначенных для модульного тестирования, которые генерируют отчеты о тестировании в различных форматах (например, JUnit в комплекте с Jenkins, MSTest , NUnit и т. д.). [20] ) и автоматическое тестирование , поддерживающее автоматические тесты. Сборки могут создавать отчеты о тестировании в различных форматах, поддерживаемых плагинами ( поддержка JUnit в настоящее время включена в комплект), а Jenkins может отображать отчеты, генерировать тенденции и отображать их в графическом интерфейсе.
Почтовая программа
[ редактировать ]Позволяет настраивать уведомления по электронной почте о результатах сборки. [21] Дженкинс будет отправлять электронные письма указанным получателям всякий раз, когда происходит определенное важное событие, например:
- Неудачная сборка.
- Нестабильная сборка.
- Успешная сборка после неудачной сборки указывает на то, что кризис закончился.
- Нестабильная сборка после успешной, что указывает на регресс.
Реквизиты для входа
[ редактировать ]Позволяет хранить учетные данные в Jenkins. Предоставляет стандартизированный API для других плагинов для хранения и получения различных типов учетных данных. [22]
Мониторинг внешних заданий
[ редактировать ]Добавляет возможность отслеживать результат внешне выполняемых заданий. [23]
SSH-агенты
[ редактировать ]Этот плагин позволяет управлять агентами (ранее известными как подчиненные). [24] работает на машинах *nix через SSH. [25] Он добавляет новый тип метода запуска агента. Этот метод запуска будет
- Откройте SSH-соединение с указанным хостом под указанным именем пользователя,
- Проверьте версию Java по умолчанию для этого пользователя,
- [еще не реализовано] Если версия по умолчанию несовместима с версией Jenkins Agent.jar , попробуйте найти подходящую версию Java.
- Как только у него будет подходящая версия Java, скопируйте последнюю версию Agent.jar через SFTP (возврат к scp, если SFTP недоступен),
- Запустите процесс агента.
Javadoc
[ редактировать ]Этот плагин добавляет поддержку Javadoc в Jenkins. Раньше эта функциональность была частью ядра, но начиная с Jenkins 1.431 она была разделена на отдельные плагины. [26]
Плагин позволяет выбрать «Опубликовать Javadoc» в качестве действия после сборки, указав каталог, в котором должен быть собран Javadoc, и ожидается ли сохранение для каждой успешной сборки. [27]
Онлайн объяснение
[ редактировать ]Jenkins можно использовать для планирования и мониторинга выполнения сценария оболочки через пользовательский интерфейс вместо командной строки.
Безопасность
[ редактировать ]Безопасность Jenkins зависит от двух факторов: контроля доступа и защиты от внешних угроз. Контроль доступа можно настроить двумя способами: аутентификация и авторизация пользователя. защита от внешних угроз, таких как атаки CSRF и вредоносные сборки. Также поддерживается [28]
Награды и признание
[ редактировать ]- Премия InfoWorld Bossie (Лучшее программное обеспечение с открытым исходным кодом) в 2011 году. [29]
- Получил премию Geek Choice Award в 2014 году. [29]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Дайер, Дэн. «Почему вы до сих пор не используете Hudson?» . Проверено 21 мая 2008 г.
- ^ Jenkins 1.396 выпущен. Архивировано 8 декабря 2018 г. на Wayback Machine . Опубликован первый выпуск Jenkins , Косуке Кавагути.
- ^ «Релиз 2.468» . 16 июля 2024 г. Проверено 23 июля 2024 г.
- ^ "ЛИЦЕНЗИЯ.txt" .
jenkinsci/jenkins
(хранилище исходного кода) . GitHub (опубликовано 11 сентября 2011 г.). 12 февраля 2008 г. Архивировано из оригинала 18 октября 2016 г. Проверено 18 октября 2016 г. - ^ Кавагути, Косукэ; и др. «Использовать Hudson: Лицензия» . Архивировано из оригинала 7 февраля 2009 года . Проверено 30 января 2011 г.
- ^ «О Дженкинсе» . Eclipse Wiki: Дженкинс . Проверено 6 августа 2017 г.
- ^ «О Дженкинсе» . Wayback Machine: Eclipse Wiki, впервые доступно 6 августа 2017 г. Архивировано из оригинала 4 сентября 2018 года . Проверено 3 сентября 2018 г.
- ^ Jump up to: а б «О Дженкинсе» . История Eclipse Wiki .
- ^ Фредрик, Джеффри. «В чем разница между Hudson и CruiseControl для проектов Java?» . Переполнение стека . Проверено 17 января 2011 г.
- ^ Дюбоск, Женевьева (2008). «Конференция JavaOne 2008: победители премии Duke's Choice Awards 2008» . Конференция Java One, 2008 г. java.sun.com . Проверено 21 мая 2008 г.
- ^ Родригес, Савио (3 декабря 2010 г.). «Ошибки Oracle с открытым исходным кодом продолжаются и в проекте Hudson» . Инфомир . Проверено 31 мая 2018 г.
- ^ Проффитт, Брайан (2 февраля 2011 г.). «Разработчики Hudson голосуют за смену названия; Oracle объявляет форк» . ITWorld . Проверено 31 мая 2018 г.
- ^ Крил, Пол (4 мая 2011 г.). «Oracle передает Hudson Eclipse, но форк Jenkins кажется постоянным» . Инфомир . Проверено 31 мая 2018 г.
- ^ «Организация Дженкинса на GitHub» . Гитхаб . Проверено 31 мая 2018 г.
- ^ «Организация Hudson на Github» . Гитхаб . Проверено 31 мая 2018 г.
- ^ Моррис, Ричард (17 июля 2012 г.). «Косуке Кавагути: Компьютерщик недели» . Проверено 31 мая 2018 г.
- ^ «Что нового в Дженкинсе 2.0» . 24 августа 2016 г.
- ^ «Представляем Jenkins X: решение CI/CD для современных облачных приложений на Kubernetes» . Представляем Jenkins X: решение CI/CD для современных облачных приложений на Kubernetes .
- ^ «Непрерывная доставка с помощью Amazon EKS и Jenkins X» . Веб-сервисы Amazon . 7 ноября 2018 года. Архивировано из оригинала 6 мая 2019 года . Проверено 23 ноября 2018 г.
- ^ «Плагины» . wiki.jenkins-ci.org.
- ^ «Почтовая программа — Дженкинс — Дженкинс Wiki» . wiki.jenkins.io . Проверено 26 ноября 2017 г.
- ^ «Плагин учетных данных — Jenkins — Jenkins Wiki» . wiki.jenkins-ci.org . Проверено 26 ноября 2017 г.
- ^ «Мониторинг внешних заданий — Jenkins — Jenkins Wiki» . wiki.jenkins.io . Проверено 26 ноября 2017 г.
- ^ «Исходный код Дженкинса» . Гитхаб . Проверено 19 мая 2018 г.
- ^ «Агент сборки SSH — плагин Jenkins» . плагины.jenkins.io . Проверено 12 июня 2020 г.
- ^ «Плагин Javadoc — Jenkins — Jenkins Wiki» . wiki.jenkins.io . Проверено 26 ноября 2017 г.
- ^ «Создание и публикация электронного документа в Jenkins с помощью плагина Javadoc | Erlanger» .
- ^ «Защита Дженкинса» . Дженкинс.io . Проверено 13 сентября 2016 г.
- ^ Jump up to: а б «Награды — Дженкинс — Jenkins Wiki» . wiki.jenkins-ci.org . Проверено 13 сентября 2016 г.
Внешние ссылки
[ редактировать ]