Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Jenkins - это бесплатный сервер автоматизации с открытым исходным кодом. Он помогает автоматизировать части разработки программного обеспечения, связанные со сборкой , тестированием и развертыванием , облегчая непрерывную интеграцию и непрерывную поставку . Это серверная система, работающая в контейнерах сервлетов, таких как Apache Tomcat . Он поддерживает инструменты контроля версий, включая AccuRev , CVS , Subversion , Git , Mercurial , Perforce , ClearCase.и RTC , и может выполнять проекты на основе Apache Ant , Apache Maven и sbt, а также произвольные сценарии оболочки и пакетные команды Windows .

История [ править ]

Первоначально проект Jenkins назывался Hudson и был переименован после спора с Oracle , которая разделила проект и потребовала права на название проекта. Форк Oracle, Hudson , продолжал разрабатываться какое-то время, прежде чем был передан в дар Eclipse Foundation . Oracle Hudson больше не поддерживается [6] [7] и был объявлен устаревшим в феврале 2017 года. [8]

Примерно в 2007 году Hudson стал известен как лучшая альтернатива круиз-контролю и другим серверам сборки с открытым исходным кодом. [1] [9] На конференции JavaOne в мае 2008 года программное обеспечение получило награду Duke's Choice Award в категории «Решения для разработчиков». [10]

В течение ноября 2010 года, после приобретения Sun Microsystems компанией Oracle , в сообществе Хадсона возникла проблема, связанная с используемой инфраструктурой, которая разрослась и стала включать в себя вопросы руководства и контроля со стороны Oracle. [11] Состоялись переговоры между основными участниками проекта и Oracle, и, хотя было много областей согласия, ключевым камнем преткновения было название торговой марки «Hudson» после того, как Oracle заявила право на это имя и подала заявку на регистрацию торговой марки в декабре 2010 года. В результате 11 января 2011 г. было объявлено голосование за изменение названия проекта с «Хадсон» на «Дженкинс». Предложение было одобрено большинством голосов сообщества 29 января 2011 года, в результате чего был создан проект Jenkins. [12]

1 февраля 2011 года Oracle заявила, что намерена продолжить разработку Hudson, и считает Jenkins скорее форком, чем переименованием. Таким образом, Дженкинс и Хадсон продолжили свое существование как два независимых проекта [13], каждый из которых утверждал, что другой является развилкой. По состоянию на июнь 2019 года организация Jenkins на GitHub насчитывала 667 участников проекта и около 2200 публичных репозиториев [14] по сравнению с 28 участниками проекта Hudson и 20 публичными репозиториями с последним обновлением в 2016 году [15].

В 2011 году создатель Косуке Кавагути получил премию O'Reilly Open Source Award за свою работу над проектом Хадсона / Дженкинса. [16]

20 апреля 2016 года была выпущена версия 2 с включенным по умолчанию подключаемым модулем Pipeline . [17] Плагин позволяет писать инструкции по сборке с использованием предметно-ориентированного языка на основе Apache Groovy .

Дженкинс заменил Хадсона с 8 февраля 2017 года в Eclipse. [8]

В марте 2018 года был публично представлен проект программного обеспечения Jenkins X для Kubernetes [18] с поддержкой различных облачных провайдеров, в том числе AWS EKS. [19]

Строит [ править ]

Сборки можно запускать разными способами, например:

  • webhook , который сработал на толкаемые фиксации в системе управления версиями
  • планирование через cron- подобный механизм
  • запрашивая конкретный URL-адрес сборки .
  • после завершения других сборок в очереди
  • вызывается другими сборками

Плагины [ править ]

Для Jenkins были выпущены плагины , которые распространяют его использование на проекты, написанные на языках, отличных от Java . Доступны плагины для интеграции Jenkins с большинством систем контроля версий и базами данных об ошибках. Многие инструменты сборки поддерживаются соответствующими плагинами. Плагины также могут изменить внешний вид Jenkins или добавить новые функции. Существует набор подключаемых модулей, предназначенных для модульного тестирования, которые генерируют отчеты о тестировании в различных форматах (например, JUnit в комплекте с Jenkins, MSTest , NUnit и т. Д. [20] ) и автоматического тестирования, которое поддерживает автоматические тесты. Сборки могут создавать отчеты о тестировании в различных форматах, поддерживаемых плагинами ( JUnit поддержка в настоящее время включена), а Jenkins может отображать отчеты, генерировать тенденции и отображать их в графическом интерфейсе.

Mailer [ править ]

Позволяет настроить уведомления по электронной почте о результатах сборки. [21] Jenkins будет отправлять электронные письма указанным получателям всякий раз, когда происходит определенное важное событие, например:

  1. Неудачная сборка.
  2. Нестабильная сборка.
  3. Успешная сборка после неудачной сборки, указывающая на то, что кризис закончился
  4. Нестабильная сборка после успешной, указывающая на регресс

Полномочия [ править ]

Позволяет хранить учетные данные в Jenkins. Предоставляет стандартизированный API для других плагинов для хранения и получения различных типов учетных данных. [22]

Мониторинг внешних заданий [ править ]

Добавляет возможность отслеживать результат выполняемых извне заданий. [23]

Агенты SSH [ править ]

Этот плагин позволяет управлять агентами (ранее называвшимися подчиненными) [24], работающими на машинах * nix через SSH. [25] Добавлен новый тип метода запуска агента. Этот метод запуска будет

  1. Откройте SSH-соединение с указанным хостом под указанным именем пользователя,
  2. Проверьте версию Java по умолчанию для этого пользователя,
  3. [еще не реализовано] Если версия по умолчанию несовместима с Jenkins agent.jar , попробуйте найти подходящую версию Java
  4. После получения подходящей версии Java скопируйте последний файл agent.jar через SFTP (вернитесь к scp, если SFTP недоступен),
  5. Запустите процесс агента.

Javadoc [ править ]

Этот плагин добавляет поддержку Javadoc в Jenkins. Раньше эта функция была частью ядра, но в Jenkins 1.431 она была разделена на отдельные плагины. [26]

Плагин позволяет выбрать «Опубликовать Javadoc» в качестве действия после сборки, указав каталог, в котором будет собираться Javadoc, и если ожидается сохранение для каждой успешной сборки. [27]

Онлайн-объяснение [ править ]

Jenkins можно использовать для планирования и мониторинга запуска сценария оболочки через пользовательский интерфейс вместо командной строки.

Безопасность [ править ]

Безопасность Jenkins зависит от двух факторов: контроля доступа и защиты от внешних угроз. Контроль доступа можно настроить двумя способами: аутентификация пользователя и авторизация. Также поддерживается защита от внешних угроз, таких как CSRF- атаки и вредоносные сборки. [28]

Награды и признание [ править ]

  • Награда InfoWorld Bossie (Лучшее программное обеспечение с открытым исходным кодом) в 2011 г. [29]
  • Получил награду Geek Choice Award в 2014 году. [29]

См. Также [ править ]

  • Сравнение программного обеспечения непрерывной интеграции

Ссылки [ править ]

  1. ^ а б Дэн Дайер. "Почему вы все еще не используете Гудзон?" . Проверено 21 мая 2008 .
  2. ^ Дженкинс 1,396 выпустили , первый выпуск Дженкинс размещен , Kohsuke Кавагути
  3. ^ "Список релизов" . github.com . Проверено 3 декабря 2020 .
  4. ^ "LICENSE.txt" . (репозиторий исходного кода) . GitHub (опубликовано 11 сентября 2011 г.). 2008-02-12. Архивировано 18 октября 2016 года . Проверено 18 октября 2016 .jenkinsci/jenkins
  5. ^ Кавагути Kohsuke; и другие. «Использовать Хадсон: Лицензия» . Архивировано из оригинала на 7 февраля 2009 года . Проверено 30 января 2011 года .
  6. ^ «О Дженкинсе» . Eclipse Wiki: Дженкинс . Дата обращения 6 августа 2017 .
  7. ^ «О Дженкинсе» . Wayback Machine: Eclipse Wiki, впервые доступна 6 августа 2017 года . Архивировано из оригинала на 4 сентября 2018 года . Проверено 3 сентября 2018 года .
  8. ^ а б «О Дженкинсе» . История Eclipse Wiki .
  9. ^ Джеффри Фредрик. [имя пользователя]. «В чем разница между проектами Hudson и CruiseControl для Java?» . Переполнение стека . Проверено 17 января 2011 года .
  10. ^ Duboscq, Женевьев (2008). «Конференция JavaOne 2008 года: победители конкурса Duke's Choice Awards за 2008 год» . 2008 Java One конференция . java.sun.com . Проверено 21 мая 2008 года .
  11. Родригес, Савио (3 декабря 2010 г.). «Ошибки Oracle с открытым исходным кодом продолжаются в проекте Hudson» . InfoWorld . Проверено 31 мая 2018 года .
  12. ^ Proffitt, Брайан (2 февраля 2011). «Разработчики Hudson голосуют за изменение названия; Oracle объявляет вилку» . ITWorld . Проверено 31 мая 2018 года .
  13. ^ Криль, Пол (4 мая 2011). «Oracle передает Hudson Eclipse, но вилка Jenkins кажется постоянной» . InfoWorld . Проверено 31 мая 2018 года .
  14. ^ "Организация Дженкинса на GitHub" . Проверено 31 мая 2018 года .
  15. ^ "Организация Hudson на Github" . Проверено 31 мая 2018 года .
  16. Моррис, Ричард (17 июля 2012 г.). «Косуке Кавагути: Компьютерщик недели» . Проверено 31 мая 2018 года .
  17. ^ «Что нового в Jenkins 2.0» . 24 августа 2016 г.
  18. ^ «Представляем Jenkins X: решение CI / CD для современных облачных приложений в Kubernetes» . Представляем Jenkins X: решение CI / CD для современных облачных приложений на Kubernetes .
  19. ^ «Непрерывная доставка с Amazon EKS и Jenkins X» . Amazon Web Services . 7 ноября 2018.
  20. ^ "Плагины" . wiki.jenkins-ci.org.
  21. ^ «Почтовик - Дженкинс - Дженкинс Вики» . wiki.jenkins.io . Проверено 26 ноября 2017 года .
  22. ^ "Credentials Plugin - Jenkins - Jenkins Wiki" . wiki.jenkins-ci.org . Проверено 26 ноября 2017 года .
  23. ^ «Мониторинг внешних рабочих мест - Jenkins - Jenkins Wiki» . wiki.jenkins.io . Проверено 26 ноября 2017 года .
  24. ^ "Исходный код Дженкинса" . GitHub . Проверено 19 мая 2018 .
  25. ^ "Агент сборки SSH - Плагин Jenkins" . plugins.jenkins.io . Проверено 12 июня, 2020 .
  26. ^ "Плагин Javadoc - Jenkins - Jenkins Wiki" . wiki.jenkins.io . Проверено 26 ноября 2017 года .
  27. ^ "Сгенерируйте и опубликуйте edoc в Jenkins, используя плагин Javadoc | Erlanger" .
  28. ^ "Обеспечение безопасности Дженкинса" . jenkins.io . Проверено 13 сентября 2016 .
  29. ^ a b «Награды - Дженкинс - Дженкинс Вики» . wiki.jenkins-ci.org . Проверено 13 сентября 2016 .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Мозер, Манфред; О'Брайен, Тим (25 ноября 2011 г.). Бесплатная книга Хадсона (PDF) . Oracle, Inc.
  • Косуке Кавагути (08.02.2011). «Создатель Jenkins Косуке Кавагути в подкасте The Changelog рассказывает о происхождении проекта и смене названия» . журнал изменений . Проверено 3 марта 2016 .
  • Косуке Кавагути (15.02.2015). «7 способов оптимизации Jenkins / Hudson (от его основателя)» (PDF) . CloudBees. Архивировано из оригинального (PDF) 27 октября 2011 года . Проверено 3 марта 2016 .
  • Ассаф Лави (2017-03-01). «Создание Docker с Дженкинсом» . cloudhare.com .
  • Нимават, Каришма. «Учебное пособие по созданию конвейера Jenkins для автоматизированного тестирования Selenium» . Как построить конвейер Jenkins для автоматического тестирования Selenium? . Программное обеспечение NEX.