Три способа поднять Jenkins CI для ваших автотестов

Заметка, в которой я решил поделиться знаниями в организации CI для автотестов. Такая задача возникает практически на каждом проекте, так как автоматизация без CI сервера - это как хлеб без масла. Я уже писал про Travis CI, теперь посмотрим на Jenkins.

Jenkins 8

Основным источником информации относительно Jenkins является официальный сайт jenkins-ci.org.

Я покажу три способа запуска Jenkins CI и дам определенные советы и пояснения относительно каждого способа. Для тех же, кто не знаком с CI процессом и Jenkins, советую посмотреть видео.

Итак, начнем с самого простого.

Способ 1: Запустить Jenkins war в консоли

Самый простой и банальный способ - скачать jenkins.war и запустить его, как простое java приложение. Для этого нужно открыть консоль cmd Windows или terminal Unix и набрать команду:

java -jar jenkins.war

После того как выполните данную команду в вашей системе запустится jetty сервер; если в вашей консоли появилась надпись типа jenkins is fully configured and running, значит вы смело можете открывать браузер и по стандартному пути

http://localhost:8080

у вас появится главная страница Jenkins.

Комментарий:

Данный способ является самым простым и самым ненадежным. Ни в коем случае не используйте его в production. Если вы закроете консоль, то ваш CI сервер свалится, информация о созданных job и установленные плагины сохранятся, вы сможете зайти на хост и снова запустить сервер таким способом, но вот захотите ли вы это делать часто - это вопрос. Данный способ больше подходит для демонстрационных случаев, либо как временная мера.

Способ 2: Запустить Jenkins на Tomcat

Самый распространенный и надежный способ - настроить Tomcat сервер и запустить Jenkins как стандартное web приложение.

Скачиваем Tomcat 7 и распаковываем его в удобное для вас место. Если у вас Windows - это скорее будет корень раздела C. Проще всего сделать TOMCAT_HOME в глобальных переменных, дабы иметь доступ к Tomcat в консоли.

После того, как вы скачали Tomcat, нужно скопировать скачанный jenkins.war по пути:

${TOMCAT_HOME}/webapps/

Затем перейти в папку ${TOMCAT_HOME}/bin

В этой папке вам нужно найти скрипт под названием catalina.bat либо catalina.sh. Далее нужно запустить этот скрипт. Для Unix это выглядит так:

${TOMCAT_HOME}/bin/catalina.sh start

После этого вы увидите в консоли вывод типа:

bin ➤ sh catalina.sh start
Using CATALINA_BASE:   /home/sergey/Downloads/apache-tomcat-7.0.65
Using CATALINA_HOME:   /home/sergey/Downloads/apache-tomcat-7.0.65
Using CATALINA_TMPDIR: /home/sergey/Downloads/apache-tomcat-7.0.65/temp
Using JRE_HOME:        /usr/lib/jvm/java-8-oracle
Using CLASSPATH:       /home/sergey/Downloads/apache-tomcat-7.0.65/bin/bootstrap.jar:/home/sergey/Downloads/apache-tomcat-7.0.65/bin/tomcat-juli.jar
Tomcat started.

Теперь можете смело открывать в браузере

http://localhost:8080/jenkins

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

Комментарий:

Как я уже говорил, это самый распространенный способ и самый надежный. Большинство java web приложений работает на Tomcat. К тому же, в случае какого-либо падения вы сможете посмотреть лог файл Tomcat и разобраться, в чем же дело. В своей практике мне приходилось разбираться один раз, да и то Tomcat упал только из-за того, что закончилось место на диске.

Способ 3: Использовать Docker контейнер

Docker, ну куда же без него! Сейчас контейнеры набирают огромную популярность. Могу смело заявить, что в какой-то степени - это тренд. Если вы не знакомы с этой технологией, настоятельно рекомендую почитать и посмотреть на этого "зверька".

Для запуска докер контейнера у вас на компьютере должен быть предустановлен Docker. Установку смотреть здесь.

Теперь можем спокойно запускать наш контейнер.

docker run -p 8080:8080 jenkins

В результате выполнения этой команды Docker скачает контейнер и запустит его. Внутри контейнера находится Tomcat с предустановленным Jenkins CI. Вот и все, с Docker эта процедура выглядит очень просто.

Комментарий:

Данный способ мало в чем уступает способу с Tomcat, так как внутри контейнера находится такой же Tomcat сервер. Единственный недостаток - это то, что при падении или остановке вашего контейнера вы потеряете всю информацию. Чтобы избежать таких печальных последствий, советую детально почитать документ и запускать контейнер такой вот командой:

docker run -p 8080:8080 -v /your/home:/var/jenkins_home jenkins

Таким образом все содержимое папки jenkins_home будет сохранено на вашей host машине и потери данных не произойдет.

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

Частные консультации и обучение