Jenkins (программное обеспечение) - Jenkins (software)

Дженкинс
Логотип Jenkins с title.svg
Ansible-playbook-output-jenkins.png
Оригинальный автор (ы)Косуке Кавагути[1]
изначальный выпуск2 февраля 2011 г. (2011-02-02)[2]
Стабильный выпуск
2.269[3] / 1 декабря 2020; 2 дня назад (2020-12-01)
Репозиторий Отредактируйте это в Викиданных
Написано вЯва
ПлатформаJava 8, Java 11
ТипНепрерывная доставка
ЛицензияЛицензия MIT[4][5]
Интернет сайтДженкинс.io Отредактируйте это в Викиданных

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

История

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

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

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

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

В 2011 году создатель Косуке Кавагути получил Премия O'Reilly за открытый исходный код за его работу над проектом Хадсон / Дженкинс.[16]

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

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

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

Строит

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

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

Плагины

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

Почтовая программа

Позволяет настроить уведомления по электронной почте о результатах сборки.[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. ^ а б Дэн Дайер. "Почему вы все еще не используете Гудзон?". Получено 2008-05-21.
  2. ^ Выпущен Jenkins 1.396, Опубликован первый выпуск Jenkins, Косуке Кавагути
  3. ^ «Список релизов». github.com. Получено 2020-12-03.
  4. ^ "LICENSE.txt". Дженкинси / Дженкинс (репозиторий исходного кода). GitHub (опубликовано 11 сентября 2011 г.). 2008-02-12. В архиве из оригинала от 18.10.2016. Получено 2016-10-18.
  5. ^ Кавагути, Косукэ; и другие. "Использовать Хадсон: Лицензия". Архивировано из оригинал 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 года». Конференция Java One 2008 г.. java.sun.com. Получено 21 мая, 2008.
  11. ^ Родригес, Савио (3 декабря 2010 г.). «Ошибки Oracle с открытым исходным кодом продолжаются в проекте Hudson». InfoWorld. Получено 31 мая, 2018.
  12. ^ Проффитт, Брайан (2 февраля 2011 г.). «Разработчики Hudson голосуют за изменение названия; Oracle объявляет форк». ITWorld. Получено 31 мая, 2018.
  13. ^ Криль, Пол (4 мая 2011 г.). «Oracle передает Хадсона Eclipse, но вилка Дженкинса кажется постоянной». 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. 7 ноября 2018.
  20. ^ "Плагины - Jenkins - Jenkins Wiki".
  21. ^ "Мейлер - Дженкинс - Дженкинс Вики". wiki.jenkins.io. Получено 26 ноября, 2017.
  22. ^ "Плагин учетных данных - Jenkins - Jenkins Wiki". wiki.jenkins-ci.org. Получено 26 ноября, 2017.
  23. ^ «Мониторинг внешних рабочих мест - Jenkins - Jenkins Wiki». wiki.jenkins.io. Получено 26 ноября, 2017.
  24. ^ "Исходный код Дженкинса". GitHub. Получено 2018-05-19.
  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. Получено 2016-09-13.
  29. ^ а б «Награды - Jenkins - Jenkins Wiki». wiki.jenkins-ci.org. Получено 2016-09-13.

внешняя ссылка