jenkins ci (ukr)

28
Jenkins/Sonar CI 22/11/2011

Upload: anatoliy-okhotnikov

Post on 17-May-2015

305 views

Category:

Technology


0 download

DESCRIPTION

● Що таке Continuous Integration? ● Jenkins (Oracle Hudson) ● Установка Jenkins (Ubuntu Server) ● Створення завдання на прикладі Java ● Інструменти статичного аналізу ● Sonar. Установка. Аналітика.

TRANSCRIPT

Page 1: Jenkins CI (ukr)

Jenkins/Sonar CI22/11/2011

Page 2: Jenkins CI (ukr)

Softjourn Inc.

Jenkins/Sonar CI

Anatoliy Okhotnikov

Softjourn Inc.

Page 3: Jenkins CI (ukr)

Про що буде йти мова

● Що таке Continuous Integration?● Jenkins (Oracle Hudson)● Установка Jenkins (Ubuntu Server)● Створення завдання на прикладі Java● Інструменти статичного аналізу● Sonar. Установка. Аналітика.● Питання та обговорення

Page 4: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Що таке continuous integration (CI)• Continuous Integration (неперервна

інтеграція) це практика розробки пз, у якій члени команди часто інтегруть свої наробки; звично кожен інтегрує принаймі щоденно, що призводить до багатьох інтеграцій на день.

• Кожна інтеграція перевіряється автоматичною побудовою (включно з тестами) щоб виявити помилки інтегрування якнайшвидше.

• Інтеграція це вид процесу “заплати мені зараз або заплатиш потім більше”

Page 5: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Jenkins (Oracle Hudson)• Легке встановлення• Легка конфігурація• Підтримка наборів змін• Постійні посилання• Інтеграція з RSS/E-mail/IM• Після-фактичні мітки• Звітування JUnit/TestNG• Розподілені побудови• “Відбитки” фалів• Підтримка плагінів

Page 6: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Установка Jenkins (Ubuntu Server)• Інструкції по установці доступні на

http://pkg.jenkins-ci.org/debian/• Додати ключ репозиторія:

• Додати запис репозиторія у /etc/apt/sources.list:

• Оновити індекс пакетів та встановити:

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

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

sudo apt-get update

sudo apt-get install jenkins

Page 7: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Установка Інструментів• Для статичного аналізу коду

використовуються FindBugs та PMD.• FindBugs –

http://findbugs.sourceforge.net/downloads.htmlПошук багів за певними патернами

• PMD – http://sourceforge.net/projects/pmd/Можливі баги, мертвий код, неоптимальний код, занадто складні вирази, подвійний код

• Скачати та встановити будь-де – наприклад у /opt (буде прописано у build.xml)

Page 8: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Приклад Java проекту

• Автоматичний моніторинг SCM• Побудова проекту• Автоматичне тестування• Статичний аналіз коду• Публікація артифактів• Автоматичне впровадження• Інструменти: Ant, Maven, JUnit,

PMD, FindBugs, Sonar

Page 9: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Створення Build Job

• Build a free-style software project:

Page 10: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Збереження білдів

• Зберігаємо 1, решту – видаляємо:

Page 11: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Налаштування SCM

• “Source Code Management”

• Credentials:

Page 12: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Побудова за допомогою Maven

• Додамо Maven у Build секції:

• Перевіряти SCM кожні 5 хвилин:

Page 13: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Архівація та впровадження

• Збудованого артефакту:

Page 14: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Перша Побудова

• Запустити першу побудову або почекати на SCM Poll трігер

• Може тривати довго (кешування онлайн бібліотек Maven)

• Якщо у системному шляху немає Maven – треба встановити Maven Plug-in у Jenkins (наприклад v2.2.1)

• /var/lib/jenkins/workspace

Page 15: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Запуск Інструментів Аналізу

• “Post Steps”: Invoke Ant

build.xml у workspace проекту

Page 16: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Налаштування задач FindBugs та PMD• Додати два елементи “taskdef” у файл

побудови:

Page 17: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Налаштування цілей FindBugs та PMD• Додати два елементи “target” у файл

побудови:

Page 18: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Результат Побудови

• Доступні звіти FindBugs та PMD:

Page 19: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Звіт FindBugs

• Попередження:

Page 20: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Звіт PMD

• Попередження:

Page 21: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Sonar• Відкрита платформа для управління якістю

коду – покриває сім осей якості коду:

• Розширюється за допомогою плагінів• Підтримка Java вбудована. Open Source та

комерційні плагіни для покриття C, C#, Flex, Natural, PHP, PL/SQL, Cobol та Visual Basic 6.

Page 22: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Архітектура Sonar

Page 23: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Установка Sonar (Ubuntu Server)• Інструкції по установці доступні на

http://docs.codehaus.org/display/SONAR/Install+Sonar• Зкачати та розпакувати Sonar (/opt):

• Запуск Sonar на Windows:

• Запуск Sonar на інших платформах:

wget -q -O 1.zip http://dist.sonar.codehaus.org/sonar-2.11.zip && unzip 1.zip

bin\windows-x86-32\StartSonar.bat

bin/[OS]/sonar.sh console

Page 24: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Конфігурація Sonar у Jenkins

• Додамо у “Post-build Actions”:

Page 25: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Метрики Sonar

Page 26: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Motion Chart

Page 27: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Radiator

Page 28: Jenkins CI (ukr)

Copyright © 2000-2011 Softjourn, Inc. All rights reserved

Питання та обговорення“Анатолій Охотніков”

<[email protected]>