Jenkins: установка и настройка Maven билда

Автор: | 25/01/2016

Jenkins.sh-600x600Пример ручной установки Jenkins на Vagrant бокс с Ubuntu 14.

Добавляем Vagrant машину:

$ vagrant init ubuntu/trusty64

Редактируем Vagrantfile:

Vagrant.configure(2) do |config|
    ...
    config.vm.network "forwarded_port", guest: 8081, host: 8081
    ...
    config.vm.network "public_network"
    ...
    config.vm.provider "virtualbox" do |vb|
        ...
        vb.memory = "2048"
        ...
    end
    ...
end

Запускаем и подключаемся:

$ vagrant up
$ vagrant ssh

В файл /etc/apt/sources.list.d/jenkins.list добавляем репозиторий:

deb http://pkg.jenkins-ci.org/debian binary/

Обновляем списки, устанавливаем Jenkins и Git:

# apt-get update
# apt-get install jenkins
# apt-get install git

В случае ошибки вида:

...
Processing triggers for ca-certificates (20141019ubuntu0.14.04.1) ...
Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....
done.
done.
Errors were encountered while processing:
 jenkins
E: Sub-process /usr/bin/dpkg returned an error code (1)

Можно посмотреть описание тут>>>.

Добавляем группу вручную:

# addgroup --system --quiet jenkins

Повторяем установку:

# apt-get install jenkins
...
Setting up jenkins (1.644) ...
 * Starting Jenkins Continuous Integration Server jenkins

Проверяем:

# service jenkins status
Jenkins Continuous Integration Server is running with the pid 5579
# netstat -anp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      5580/java

Сменить порт можно в файле /etc/default/jenkins:

...
# port for HTTP connector (default 8080; disable with -1)
#HTTP_PORT=8080
HTTP_PORT=8081
...

Перезапускаем, еще раз проверяем:

# service jenkins restart
 * Restarting Jenkins Continuous Integration Server jenkins
# netstat -anp | grep 808
tcp6       0      0 :::8081                 :::*                    LISTEN      5853/java

Открываем Jenkins в браузере:

Screen Shot 2016-01-14 at 13.25.12

Что бы выключить переключение языка – устанавливаем плагин Locale.

Ручная установка –  переходим в рабочую директорию Jenkins:

# cd /var/lib/jenkins

Загружаем плагин, и перезапускаем Jenkinks:

# cd /var/lib/jenkins/plugins/
# wget http://updates.jenkins-ci.org/latest/locale.hpi
# service jenkins restart

Добавляем плагин Git – через установщик плагинов самого Jenkins, в Manage Jenkins > Manage Plugins:

Screen Shot 2016-01-14 at 14.50.14

Проверяем плагин Locale:

# ls -l locale
total 12
drwxr-xr-x 3 jenkins jenkins 4096 Feb 14  2011 META-INF
drwxr-xr-x 3 jenkins jenkins 4096 Jan 14 11:35 WEB-INF
drwxr-xr-x 2 jenkins jenkins 4096 Feb 14  2011 help

В UI Jenkins-а:

Screen Shot 2016-01-14 at 13.36.53

Переходим в Manage Jenkins > Configure System и устанавливаем параметр “Ignore browser preference and force this language to all users“:

Screen Shot 2016-01-14 at 13.40.21

Сохраняем:

Screen Shot 2016-01-14 at 13.41.05

Устанавливаем Java, пример описан тут>>>.

Переходим в Configure System, находим JDK:

Screen Shot 2016-01-14 at 14.34.30

Добавляем Maven:

# apt-get install maven2

(or just maven for 3)

Находим путь его установки:

# which mvn
/usr/bin/mvn

# ls -l /usr/bin/mvn
lrwxrwxrwx 1 root root 21 Jan 14 12:25 /usr/bin/mvn -> /etc/alternatives/mvn

# ls -l /etc/alternatives/mvn
lrwxrwxrwx 1 root root 25 Jan 14 12:25 /etc/alternatives/mvn -> /usr/share/maven2/bin/mvn

Добавляем его в Maven installations:

Screen Shot 2016-01-14 at 14.42.31

Добавляем первый билд-проект Maven:

Screen Shot 2016-01-14 at 13.45.14

Настраиваем:

Screen Shot 2016-01-14 at 15.05.02

Настраиваем Git:

111

Добавляем ключ для авторизации в репозитории:

112

Настраиваем триггеры, бранчи:

Screen Shot 2016-01-14 at 15.06.10

Локально создадим новый Maven проект, который будем билдить.

$ mkdir /tmp/java_hellow
$ cd /tmp/java_hellow
$ git clone https://[email protected]/username/java_hellow.git
$ mvn archetype:generate -DgroupId=com.setevoy.jenkinsexample -DartifactId=setevoy_jenkinsexample -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
$ git add setevoy_jenkinsexample/
$ git commit -m "jenkinsexample init"
$ git push origin

И запускаем билд в Jenkins:

Screen Shot 2016-01-14 at 15.02.04

Вывод консоли:

Screen Shot 2016-01-14 at 15.08.12

Screen Shot 2016-01-14 at 15.08.32

Готово.

Ссылки по теме

http://www.vogella.com
https://www.cloudbees.com
https://wiki.jenkins-ci.org
https://wiki.jenkins-ci.org