Поиск…


замечания

Jenkins - инструмент непрерывной интеграции с открытым исходным кодом, написанный на Java. Проект был раздвоен из Хадсона после спора с Oracle .

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

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

Версии

Дженкинс

Версия Дата выхода
1,656 2016-04-03
2,0 2016-04-20

Дженкинс 1.x против Дженкинса 2.x

Дженкинс (и по сей день) является системой непрерывной интеграции (CI), которая позволяет автоматизировать процесс разработки программного обеспечения, такой как создание кода для триггеров фиксации SCM. Однако растущая потребность в непрерывной доставке (CD) потребовала, чтобы Дженкинс эволюционировал для чистой системы CI к соединению CI и CD. Кроме того, потребность в индустриализации рабочих мест Дженкинса растет, и классические работы Jenkins 1.x Freestyle/Maven jobs стали слишком ограниченными для определенных потребностей.

Под Jenkins 1.xa плагин под названием workflow-plugin появился, чтобы позволить разработчикам писать код для описания заданий. Jenkins 2 идет дальше, добавляя встроенную поддержку Pipeline as Code . Главное преимущество заключается в том, что конвейеры, являющиеся файлами сценариев Groovy, могут быть более сложными, чем автономные пользовательские задания freestyle, и могут контролироваться версиями. Jenkins 2 также добавляет новый интерфейс, который позволяет легко визуализировать различные «этапы», определенные в конвейере, и следить за ходом всего конвейера, например, ниже:

введите описание изображения здесь

Полный обзор того, что Jenkins 2 добавляет к Jenkins, см. В обзоре Jenkins 2 .

Кроме того, полный журнал изменений доступен на веб-сайте Jenkins.

Монтаж

Для систем, основанных на apt-get, таких как Ubuntu

Добавьте репозиторий Jenkins:

wget -q -O - https://jenkins-ci.org/debian/ Jenkins-ci.org.key | sudo apt-key

sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

Обновите источники и установите Jenkins:

sudo apt-get update

sudo apt-get install jenkins

Пользователь jenkins теперь создан, и по умолчанию Jenkins будет работать на порту 8080.

Для распределений на основе RPM, таких как Red Hat Enterprise Linux (RHEL), CentOS, Fedora или Scientific Linux

Чтобы загрузить файл репозитория для стабильной версии:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo

Или, если вам нужны последние еженедельные выпуски:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

Импорт открытого ключа:

sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

Установите Jenkins с помощью yum:

sudo yum install jenkins

Jenkins требует java для запуска, чтобы установить его:

sudo yum install java

Для запуска / остановки / перезапуска использования дженкинсов:

sudo service jenkins start/stop/restart

Обновление jenkins (установки RPM)

  1. Резервное копирование домашней директории jenkins
  2. Замените jenkins.war в следующем месте с новым файлом WAR. / USR / Библиотека / Jenkins / jenkins.war`
  3. Перезапустить Дженкинса
  4. Проверьте прикрепленные плагины и отмените при необходимости
  5. Перезагрузка конфигурации с диска

Примечание. Для обновлений Jenkins 2 для JENKINS_AJP_PORT="-1" сервера приложений причала отключите порт JENKINS_AJP_PORT="-1" (установите JENKINS_AJP_PORT="-1" ) в /etc/sysconfig/jenkins .

Настройка прокси-сервера Nginx

На самом деле Дженкинс работает на порту 8080. Мы можем установить прокси-сервер из порта 80 -> 8080, чтобы доступ к Jenkins был доступен через:

http://<url>.com

вместо стандартного

http://<url>.com:8080

Начните с установки Nginx.

sudo aptitude -y install nginx

Удалить настройки по умолчанию для Nginx

cd /etc/nginx/sites-available

sudo rm default ../sites-enabled/default

Создайте новый файл конфигурации

sudo touch jenkins

Скопируйте следующий код во вновь созданный файл jenkins .

upstream app_server {
  server 127.0.0.1:8080 fail_timeout=0;
}

server {
  listen 80;
  listen [::]:80 default ipv6only=on;
  server_name ;

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (!-f $request_filename) {
        proxy_pass http://app_server;
        break;
    }
  }
}

Создайте символическую связь между доступными сайтами и сайтами:

sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/

Перезапустите службу прокси-сервера Nginx

sudo service nginx restart

Теперь Дженкинс будет доступен из порта 80.

Установка плагина из внешнего источника

java -jar [Path to client JAR] -s [Server address] install-plugin [Plugin ID]

Клиент JAR должен быть JI-файлом CLI, а не тем же JAR / WAR, который запускает Jenkins. Уникальные идентификаторы можно найти на соответствующей странице плагинов на Wiki Jenkins CLI ( https://wiki.jenkins-ci.org/display/JENKINS/Plugins)

Перемещение Дженкинса с одного компьютера на другой

Это помогло мне перейти от Ubuntu 12.04 (Jenkins ver. 1.628) к Ubuntu 16.04 (Jenkins, версия 1.651.2). Сначала я установил Дженкинса из репозиториев .

  1. Остановить оба сервера Jenkins

  2. Скопируйте JENKINS_HOME (например, / var / lib / jenkins) со старого сервера на новый. С консоли на новом сервере:

    rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/

  3. Запустите новый сервер Jenkins

Возможно, вам это не понадобится, но мне пришлось

  • Manage Jenkins и Reload Configuration from Disk .
  • Отключите и снова подключите все ведомые устройства.
  • Убедитесь, что в Configure System > Jenkins Location Jenkins URL правильно назначен новому серверу Jenkins.

Настроить проект в Дженкинсе

Здесь мы будем проверять последнюю копию кода нашего проекта, запускать тесты и делать приложение вживую. Чтобы достичь этого, выполните следующие шаги:

  1. Откройте Jenkins в браузере.
  2. Нажмите ссылку « Создать работу» .
  3. Введите название проекта и выберите ссылку « Создать бесплатный проект» .
  4. Нажмите кнопку « ОК» .
  5. В разделе «Управление исходным кодом» выберите поле рядом с инструментом управления исходным кодом. В моем случае я выбрал Git .

Укажите URL-адрес git-репо, например git://github.com/example/example.git

  1. В разделе триггеров Build выберите радиоканал рядом с SCM опроса .
  2. Предоставьте ***** в поле « Расписание» . Этот блок отвечает за запуск сборки через регулярные промежутки времени. ***** указывает, что задание будет запускаться каждую минуту для изменений в git repo.
  3. В разделе « Сборка » нажмите кнопку « Добавить шаг» , а затем выберите вариант, по которому вы хотите построить проект. Я выбрал Execute Shell . В командной строке напишите команду для сборки, запуска тестов и развертывания в prod.
  4. Прокрутите вниз и выберите «Сохранить» .

Итак, выше мы создали базовый проект в Jenkins, который будет запускать сборку каждую минуту для изменения вашего репозитория git. Примечание. Чтобы настроить сложный проект, возможно, вам придется установить некоторые плагины в Jenkins.

Дженкинс полный Введение в одном месте

1. Дженкинс:

Jenkins - инструмент непрерывной интеграции с открытым исходным кодом, написанный на Java. Проект был раздвоен из Хадсона после спора с Oracle.

В двух словах, Jenkins является ведущим сервером автоматизации с открытым исходным кодом. Построенный с Java, он предоставляет сотни плагинов для поддержки строительства, тестирования, развертывания и автоматизации практически для любого проекта.

Особенности: Jenkins предлагает следующие основные функции из коробки, и многие другие могут быть добавлены через плагины:

Простота установки: просто запустите java -jar jenkins.war, разверните его в контейнере сервлетов. Нет дополнительной установки, нет базы данных. Предпочитаете установщик или собственный пакет? У нас есть и те. Простая конфигурация: Jenkins можно полностью настроить из своего дружественного веб-интерфейса с обширными проверками на лету и встроенной справкой. Богатая экосистема плагинов: Jenkins интегрируется практически с любым SCM или встроенным инструментом, который существует. Просмотр плагинов. Расширяемость: большинство частей Jenkins могут быть расширены и изменены, и легко создавать новые плагины Jenkins. Это позволяет вам настроить Jenkins в соответствии с вашими потребностями. Распределенные сборки: Jenkins может распространять сборки / тестовые нагрузки на несколько компьютеров с различными операционными системами. Создание программного обеспечения для OS X, Linux и Windows? Нет проблем.

Монтаж :

$ wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -

$ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins
to do more refer link :

Ссылка: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu

Ссылка: http://www.vogella.com/tutorials/Jenkins/article.html

Ссылка: https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins

Каталог JENKINS_HOME Дженкинсу необходимо пространство на диске для выполнения сборки и хранения архивов. Вы можете проверить это местоположение на экране конфигурации Дженкинса. По умолчанию этот параметр установлен в ~ / .jenkins, но вы можете изменить его одним из следующих способов: Установите переменную окружения «JENKINS_HOME» в новый домашний каталог перед запуском контейнера сервлета. Установите системное свойство «JENKINS_HOME» в контейнер сервлетов. Задайте запись среды JNDI «JENKINS_HOME» в новый каталог. Дополнительную информацию о том, как это сделать для контейнера, см. В сборке конкретных контейнеров. Вы можете изменить это местоположение после того, как вы использовали Дженкинса какое-то время. Для этого полностью остановите Дженкинса, переместите содержимое из старого JENKINS_HOME в новый дом, установите новый JENKINS_HOME и перезапустите Jenkins. JENKINS_HOME имеет довольно очевидную структуру каталогов, которая выглядит следующим образом:

JENKINS_HOME

+- config.xml     (jenkins root configuration)
 +- *.xml          (other site-wide configuration files)
 +- userContent    (files in this directory will be served under your http://server/userContent/)
 +- fingerprints   (stores fingerprint records)
 +- plugins        (stores plugins)
 +- workspace (working directory for the version control system)
     +- [JOBNAME] (sub directory for each job)
 +- jobs
     +- [JOBNAME]      (sub directory for each job)
         +- config.xml     (job configuration file)
         +- latest         (symbolic link to the last successful build)
         +- builds
             +- [BUILD_ID]     (for each build)
                 +- build.xml      (build result summary)
                 +- log            (log file)
                 +- changelog.xml  (change log)

Jenkins Build Jobs:

Создание нового задания для сборки в Jenkins очень просто: просто нажмите на пункт меню «New Job» на панели инструментов Jenkins. Jenkins поддерживает несколько различных типов заданий построения, которые представлены вам, когда вы решите создать новое задание

Проект программного обеспечения Freestyle

Работы по созданию фристайла - это задания общего назначения, которые обеспечивают максимальную гибкость.

Проект Maven «Проект maven2 / 3» - это работа по сборке, специально адаптированная к проектам Maven. Дженкинс понимает файлы Maven pom и структуры проекта и может использовать информацию, полученную из файла pom, чтобы уменьшить работу, необходимую для настройки вашего проекта.

Workflow

Организует длительные действия, которые могут охватывать несколько подчиненных устройств. Подходит для строительства трубопроводов и / или организации сложных мероприятий, которые нелегко вписываются в тип работы в свободном стиле.

Мониторинг внешнего задания Задание задания «Мониторинг внешнего задания» позволяет следить за неинтерактивными процессами, такими как задания cron.

Задача многоконфигурации «Проект многоконфигурации» (также называемый «матричным проектом») позволяет запускать одно и то же задание сборки во многих разных конфигурациях. Эта мощная функция может быть полезна для тестирования приложения во многих разных средах, с разными базами данных или даже с разными машинами сборки.

1. Построение программного проекта (свободный стиль)

Дженкинс может использоваться для выполнения типичной работы сервера сборки, такой как непрерывная / официальная / ночная сборка, запуск тестов или выполнение некоторых повторяющихся пакетных задач. Это называется «программным проектом свободного стиля» в Дженкинсе. Настройка проекта. Перейдите на верхнюю страницу Jenkins, выберите «Новое задание», затем выберите «Построить проект со свободным стилем». Этот тип задания состоит из следующих элементов: необязательный SCM, например CVS или Subversion, где находится исходный код. дополнительные триггеры для управления, когда Дженкинс выполнит сборку. какой-то скрипт сборки, который выполняет сборку (ant, maven, shell-скрипт, командный файл и т. д.), где реальная работа выполняет дополнительные шаги для сбора информации из сборки, такие как архивирование артефактов и / или запись javadoc и test Результаты. необязательные шаги для уведомления других людей / систем с результатом сборки, таких как отправка электронной почты, мгновенных сообщений, обновление трекера и т. д.

Создает проекты, не связанные с источником. Иногда бывает необходимо создать проект просто для демонстрационных целей или недоступен доступ к хранилищу SVN / CVS. Выбрав для настройки проекта как «Нет» в разделе «Управление исходным кодом», вам необходимо:

  1. Постройте проект хотя бы один раз (он не удастся), но Дженкинс создаст структуру jenkins / workspace / PROJECTNAME /
  2. Скопируйте файлы проекта в jenkins / workspace / PROJECTNAME /
  3. Постройте снова и настройте соответствующим образом

Дженкинс устанавливает переменные среды

Когда выполняется задание Дженкинса, он устанавливает некоторые переменные среды, которые вы можете использовать в своем сценарии оболочки, командах пакетной обработки, сценарии Ant или Maven POM. См. Список переменных, нажав на ENVIRONMENT_VARIABLE.

Настройка автоматических сборок

Сборка в Jenkins может запускаться периодически (по расписанию, указанному в конфигурации) или когда исходные изменения в проекте были обнаружены или их можно автоматически запускать, запросив URL-адрес:

Http: // YOURHOST / Jenkins / Работа / Projectname / сборки

Это позволяет подключать Jenkins к различным настройкам. Для получения дополнительной информации (в частности, с помощью включенной безопасности) см. API удаленного доступа.

Создает с помощью исходных изменений

Вы можете заставить Jenkins опросить вашу систему контроля версий за изменения. Вы можете указать, как часто Дженкинс опробовывает вашу систему контроля версий, используя тот же синтаксис, что и crontab в Unix / Linux. Однако, если ваш период опроса короче, чем требуется для опроса вашей системы контроля версий, вы можете получить несколько сборок для каждого изменения. Вы должны либо настроить период опроса дольше, чем время, затрачиваемое на опрос вашей системы контроля версий, или использовать триггер после фиксации. Вы можете просмотреть журнал опроса для каждой сборки, чтобы узнать, сколько времени потребовалось для опроса вашей системы.

В качестве альтернативы вместо опроса с фиксированным интервалом вы можете использовать триггер URL (описано выше), но с / polling вместо / build в конце URL-адреса. Это заставляет Дженкинс опробовать SCM для изменений, а не для немедленного создания. Это предотвращает запуск Jenkins сборки без каких-либо существенных изменений для коммитов, влияющих на модули или ветви, не связанные с заданием. При использовании / опросе задание должно быть настроено для опроса, но расписание может быть пустым.

Создает по электронной почте (sendmail)

Если у вас есть учетная запись root вашей системы, и вы используете sendmail, я нашел ее проще всего настроить / etc / aliases и добавить следующую запись: jenkins-foo: "| / bin / wget -o / dev / null

http: // YOURHOST / jenkins / job / PROJECTNAME / build "

а затем запустите команду «newaliases», чтобы сообщить об этом изменениям в sendmail. Всякий раз, когда кто-то отправляет электронное письмо в «jenkins-foo @ yoursystem», это вызовет новую сборку. Подробнее см. В настройке sendmail. Создает по электронной почте (qmail) С помощью qmail вы можете написать /var/qmail/alias/.qmail-jenkins следующим образом: | / bin / wget -o / dev / null http: // YOURHOST / jenkins / job / PROJECTNAME / build "

2. Создание проекта Maven

Дженкинс предоставляет тип задания, посвященный Maven 2/3. Этот тип работы объединяет Дженкинса с Maven 2/3 и обеспечивает следующие преимущества по сравнению с более общим программным проектом свободного стиля.

Дженкинс разбирает Maven POMs, чтобы получить большую часть информации, необходимой для выполнения своей работы. В результате размер конфигурации резко сокращается.

Дженкинс слушает исполнение Maven и выясняет, что нужно делать, когда он сам по себе. Например, он автоматически записывает отчет JUnit, когда Maven запускает тестовую фазу. Или, если вы запустите цель javadoc, Дженкинс автоматически запустит javadoc.

Jenkins автоматически создает зависимости проекта между проектами, которые объявляют зависимости SNAPSHOT между собой. Увидеть ниже. Таким образом, в основном вам просто нужно настроить информацию SCM и какие цели вы хотите запустить, а Дженкинс все выяснит.

Этот тип проекта может автоматически предоставлять следующие функции:

Архивные артефакты, созданные сборкой

Опубликовать результаты тестирования

Запуск заданий для проектов, которые являются зависимыми от нисходящего потока

Разверните свои артефакты в репозиторий Maven

Результаты тестирования прорыва по модулю

Необязательно перестраивать только измененные модули, ускоряя ваши сборки

Автоматическое построение цепочки из зависимостей модулей

Дженкинс читает зависимости вашего проекта от вашего POM, и если они также построены на Jenkins, триггеры настроены таким образом, что новая сборка в одной из этих зависимостей автоматически запустит новую сборку вашего проекта. Дженкинс понимает все виды зависимостей в POM. А именно, родительский POM

<dependencies> section of your project
<plugins> section of your project
<extensions> section of your project
<reporting> section of your project

Этот процесс учитывает версии, поэтому вы можете иметь несколько версий / ветвей вашего проекта на одном Jenkins и правильно определять зависимости. Обратите внимание, что диапазоны версий зависимостей не поддерживаются, см. [ Https://issues.jenkins-ci.org/browse/JENKINS-2787][1] по этой причине.

Эта функция может быть отключена по требованию - см. Параметр конфигурации Сборка при каждом создании зависимости SNAPSHOT

Монтаж :

1. войдите в Управление Jenkins >> configure System

  1. в maven tab "Нажмите на установку maven ......

Вы можете либо заставить Jenkins автоматически установить определенную версию Maven, либо указать путь к локальной установке Maven (вы можете настроить столько версий Maven для своих проектов сборки, сколько захотите, и использовать разные версии Maven для разных проектов. Если вы установите флажок «Установить автоматически», Jenkins загрузит и установит запрошенную версию Maven для вас и установит ее в каталог инструментов в домашнем каталоге Jenkins.

Как это использовать

Сначала вы должны настроить установку Maven (этот шаг можно пропустить, если вы используете DEV @ cloud). Это можно сделать, перейдя на экран конфигурации системы (Manage Jenkins-> Configure System). В разделе «Установка Maven»: 1) нажмите кнопку «Добавить», 2) укажите имя «Maven 3.0.3», а затем 3) выберите версию из раскрывающегося списка.

Теперь Jenkins автоматически установит эту версию в любое время (например, на любых новых машинах), загрузив ее из Apache и разархивируя ее.

Создайте новую работу Maven:

  1. Нажатие «Новое задание / Новый элемент» слева
  2. Дайте ему имя
  3. Выберите «Build a Maven 2/3 project»
  4. Сохраните свою работу

Теперь вам нужно настроить свою работу

  1. Выберите SCM, который вы хотите использовать (например, с помощью git)

  2. выберите цель maven для вызова

  3. добавить URL-адрес репозитория и учетные данные.

  4. проверить частное личное сообщение maven:

Вы также можете определить путь custome для этого же.

5. Проект строительства

Создайте свой проект, нажав на сборку сейчас и нажмите на индикатор выполнения в левой руке «Build Executor Status», чтобы посмотреть, как jenkins устанавливают Maven, проверяют ваш проект и строят его с помощью maven.

Логирование:

https://wiki.jenkins-ci.org/display/JENKINS/Logging

Консоль сценариев:

Полезно для устранения неполадок, диагностики или пакетных обновлений заданий. Jenkins предоставляет консоль скриптов, которая дает вам доступ ко всем внутренним компонентам Jenkins. Эти скрипты написаны в Groovy, и вы найдете некоторые образцы из них на этой странице .

Настройте простой проект сборки с помощью сценария сценария Jenkins 2

Здесь мы создадим Groovy-конвейер в Jenkins 2, чтобы сделать следующие шаги:

  • Проверяйте каждые 5 минут, если новый код был зачислен в наш проект
  • Код заказа из репозитория SCM
  • Maven компилирует наш код Java
  • Запустите наши интеграционные тесты и опубликуйте результаты

Вот шаги, которые мы сделаем:

  1. Убедитесь, что у нас есть версия 2.0 Jenkins (вы можете проверить это в нижнем правом углу страницы), например:

    Пример использования примера Jenkins

  2. На домашней странице Дженкинса нажмите « Новый элемент»

  3. Введите название проекта и выберите « Трубопровод»

  4. В разделе « Сборка триггеров » выберите вариант опроса SCM и добавьте следующие расписания CRON за 5 минут: */5 * * * *

  5. В разделе « Трубопровод » выберите « Сценарий трубопровода» или « Сценарий трубопровода» из SCM

  6. Если на предыдущем шаге вы выбрали Pipeline Script из SCM , теперь вам нужно указать URL-адрес репозитория SCM (Git, Mercurial, Subversion) в URL-адрес репозитория, например http://github.com/example/example.git . Вам также необходимо указать путь к скрипту вашего файла сценария Groovy в репозитории example.git, например, pipelines/example.groovy

  7. Скопируйте следующий код Groovy либо непосредственно в окне сценария Groovy, если ранее вы нажали на Pipeline Script или в вашем example.groovy если вы выбрали Pipeline Script из SCM

node('remote') {
    // Note : this step is only needed if you're using direct Groovy scripting
    stage 'Checkout Git project'
    git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
    def appVersion = version()
    if (appVersion) {
        echo "Building version ${appVersion}"
    }

    stage 'Build Maven project'
    def mvnHome = tool 'M3'
    sh "${mvnHome}/bin/mvn -B -Dmaven.test.failure.ignore verify"
    step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
}
def version() {
    def matcher = readFile('pom.xml') =~ '<version>(.+)</version>'
    matcher ? matcher[0][1] : null
}

Здесь вы должны теперь скомпилировать и протестировать свой первый проект Jenkins, используя трубопровод Jenkins 2 Groovy.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow