Jenkins/Sonar CI
22/11/2011
Softjourn Inc.




Jenkins/Sonar CI

    Anatoliy Okhotnikov
    Softjourn Inc.
Про що буде йти мова
●   Що таке Continuous Integration?
●   Jenkins (Oracle Hudson)
●   Установка Jenkins (Ubuntu Server)
●   Створення завдання на прикладі Java
●   Інструменти статичного аналізу
●   Sonar. Установка. Аналітика.
●   Питання та обговорення
Що таке continuous integration (CI)
• Continuous Integration (неперервна
  інтеграція) це практика розробки пз, у якій
  члени команди часто інтегруть свої
  наробки; звично кожен інтегрує принаймі
  щоденно, що призводить до багатьох
  інтеграцій на день.
• Кожна інтеграція перевіряється
  автоматичною побудовою (включно з
  тестами) щоб виявити помилки
  інтегрування якнайшвидше.
• Інтеграція це вид процесу “заплати мені
  зараз або заплатиш потім більше”
 Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Jenkins (Oracle Hudson)
•    Легке встановлення
•    Легка конфігурація
•    Підтримка наборів змін
•    Постійні посилання
•    Інтеграція з RSS/E-mail/IM
•    Після-фактичні мітки
•    Звітування JUnit/TestNG
•    Розподілені побудови
•    “Відбитки” фалів
•    Підтримка плагінів

    Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Установка Jenkins (Ubuntu Server)
• Інструкції по установці доступні на
  http://pkg.jenkins-ci.org/debian/
• Додати ключ репозиторія:
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key |
sudo apt-key add -
• Додати запис репозиторія у /etc/apt/sources.list:
 deb http://pkg.jenkins-ci.org/debian binary/

• Оновити індекс пакетів та встановити:
 sudo apt-get update
 sudo apt-get install jenkins
 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)
 Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Приклад Java проекту
• Автоматичний моніторинг SCM
• Побудова проекту
• Автоматичне тестування
• Статичний аналіз коду
• Публікація артифактів
• Автоматичне впровадження
• Інструменти: Ant, Maven, JUnit,
  PMD, FindBugs, Sonar
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Створення Build Job
• Build a free-style software project:




 Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Збереження білдів
• Зберігаємо 1, решту – видаляємо:




Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Налаштування SCM
• “Source Code Management”



• Credentials:



 Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Побудова за допомогою Maven
• Додамо Maven у Build секції:



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



Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Архівація та впровадження
• Збудованого артефакту:




Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Перша Побудова
• Запустити першу побудову або
  почекати на SCM Poll трігер
• Може тривати довго (кешування
  онлайн бібліотек Maven)
• Якщо у системному шляху немає
  Maven – треба встановити Maven
  Plug-in у Jenkins (наприклад
  v2.2.1)
• /var/lib/jenkins/workspace
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Запуск Інструментів Аналізу
• “Post Steps”: Invoke Ant




                                                  build.xml у workspace
                                                  проекту
 Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Налаштування задач FindBugs та PMD
• Додати два елементи “taskdef” у файл
  побудови:




 Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Налаштування цілей FindBugs та PMD
• Додати два елементи “target” у файл
  побудови:




 Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Результат Побудови
• Доступні звіти FindBugs та PMD:




Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Звіт FindBugs
• Попередження:




Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Звіт PMD
• Попередження:




Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Sonar
• Відкрита платформа для управління якістю
  коду – покриває сім осей якості коду:




• Розширюється за допомогою плагінів
• Підтримка Java вбудована. Open Source та
  комерційні плагіни для покриття C, C#,
  Flex, Natural, PHP, PL/SQL, Cobol та Visual
  Basic 6.
 Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Архітектура Sonar




Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Установка Sonar (Ubuntu Server)
• Інструкції по установці доступні на
  http://docs.codehaus.org/display/SONAR/Install+Sonar
• Зкачати та розпакувати Sonar (/opt):
wget -q -O 1.zip http://dist.sonar.codehaus.org/sonar-
2.11.zip && unzip 1.zip
• Запуск Sonar на Windows:
 binwindows-x86-32StartSonar.bat
• Запуск Sonar на інших платформах:
 bin/[OS]/sonar.sh console

 Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Конфігурація Sonar у Jenkins
• Додамо у “Post-build Actions”:




Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Метрики Sonar




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




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




Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Питання та обговорення
 “Анатолій Охотніков”
 <aokhotnikov@softjourn.com>




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

Jenkins CI (ukr)

  • 1.
  • 2.
    Softjourn Inc. Jenkins/Sonar CI Anatoliy Okhotnikov Softjourn Inc.
  • 3.
    Про що будейти мова ● Що таке Continuous Integration? ● Jenkins (Oracle Hudson) ● Установка Jenkins (Ubuntu Server) ● Створення завдання на прикладі Java ● Інструменти статичного аналізу ● Sonar. Установка. Аналітика. ● Питання та обговорення
  • 4.
    Що таке continuousintegration (CI) • Continuous Integration (неперервна інтеграція) це практика розробки пз, у якій члени команди часто інтегруть свої наробки; звично кожен інтегрує принаймі щоденно, що призводить до багатьох інтеграцій на день. • Кожна інтеграція перевіряється автоматичною побудовою (включно з тестами) щоб виявити помилки інтегрування якнайшвидше. • Інтеграція це вид процесу “заплати мені зараз або заплатиш потім більше” Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 5.
    Jenkins (Oracle Hudson) • Легке встановлення • Легка конфігурація • Підтримка наборів змін • Постійні посилання • Інтеграція з RSS/E-mail/IM • Після-фактичні мітки • Звітування JUnit/TestNG • Розподілені побудови • “Відбитки” фалів • Підтримка плагінів Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 6.
    Установка Jenkins (UbuntuServer) • Інструкції по установці доступні на http://pkg.jenkins-ci.org/debian/ • Додати ключ репозиторія: wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - • Додати запис репозиторія у /etc/apt/sources.list: deb http://pkg.jenkins-ci.org/debian binary/ • Оновити індекс пакетів та встановити: sudo apt-get update sudo apt-get install jenkins Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 7.
    Установка Інструментів • Длястатичного аналізу коду використовуються FindBugs та PMD. • FindBugs – http://findbugs.sourceforge.net/downloads.html Пошук багів за певними патернами • PMD – http://sourceforge.net/projects/pmd/ Можливі баги, мертвий код, неоптимальний код, занадто складні вирази, подвійний код • Скачати та встановити будь-де – наприклад у /opt (буде прописано у build.xml) Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 8.
    Приклад Java проекту •Автоматичний моніторинг SCM • Побудова проекту • Автоматичне тестування • Статичний аналіз коду • Публікація артифактів • Автоматичне впровадження • Інструменти: Ant, Maven, JUnit, PMD, FindBugs, Sonar Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 9.
    Створення Build Job •Build a free-style software project: Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 10.
    Збереження білдів • Зберігаємо1, решту – видаляємо: Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 11.
    Налаштування SCM • “SourceCode Management” • Credentials: Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 12.
    Побудова за допомогоюMaven • Додамо Maven у Build секції: • Перевіряти SCM кожні 5 хвилин: Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 13.
    Архівація та впровадження •Збудованого артефакту: Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 14.
    Перша Побудова • Запуститипершу побудову або почекати на SCM Poll трігер • Може тривати довго (кешування онлайн бібліотек Maven) • Якщо у системному шляху немає Maven – треба встановити Maven Plug-in у Jenkins (наприклад v2.2.1) • /var/lib/jenkins/workspace Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 15.
    Запуск Інструментів Аналізу •“Post Steps”: Invoke Ant build.xml у workspace проекту Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 16.
    Налаштування задач FindBugsта PMD • Додати два елементи “taskdef” у файл побудови: Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 17.
    Налаштування цілей FindBugsта PMD • Додати два елементи “target” у файл побудови: Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 18.
    Результат Побудови • Доступнізвіти FindBugs та PMD: Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 19.
    Звіт FindBugs • Попередження: Copyright© 2000-2011 Softjourn, Inc. All rights reserved
  • 20.
    Звіт PMD • Попередження: Copyright© 2000-2011 Softjourn, Inc. All rights reserved
  • 21.
    Sonar • Відкрита платформадля управління якістю коду – покриває сім осей якості коду: • Розширюється за допомогою плагінів • Підтримка Java вбудована. Open Source та комерційні плагіни для покриття C, C#, Flex, Natural, PHP, PL/SQL, Cobol та Visual Basic 6. Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 22.
    Архітектура Sonar Copyright ©2000-2011 Softjourn, Inc. All rights reserved
  • 23.
    Установка Sonar (UbuntuServer) • Інструкції по установці доступні на http://docs.codehaus.org/display/SONAR/Install+Sonar • Зкачати та розпакувати Sonar (/opt): wget -q -O 1.zip http://dist.sonar.codehaus.org/sonar- 2.11.zip && unzip 1.zip • Запуск Sonar на Windows: binwindows-x86-32StartSonar.bat • Запуск Sonar на інших платформах: bin/[OS]/sonar.sh console Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 24.
    Конфігурація Sonar уJenkins • Додамо у “Post-build Actions”: Copyright © 2000-2011 Softjourn, Inc. All rights reserved
  • 25.
    Метрики Sonar Copyright ©2000-2011 Softjourn, Inc. All rights reserved
  • 26.
    Motion Chart Copyright ©2000-2011 Softjourn, Inc. All rights reserved
  • 27.
    Radiator Copyright © 2000-2011Softjourn, Inc. All rights reserved
  • 28.
    Питання та обговорення “Анатолій Охотніков” <aokhotnikov@softjourn.com> Copyright © 2000-2011 Softjourn, Inc. All rights reserved