Jenkins/Sonar CI22/11/2011
Softjourn Inc.
Jenkins/Sonar CI
Anatoliy Okhotnikov
Softjourn Inc.
Про що буде йти мова
● Що таке Continuous Integration?● Jenkins (Oracle Hudson)● Установка Jenkins (Ubuntu Server)● Створення завдання на прикладі Java● Інструменти статичного аналізу● Sonar. Установка. Аналітика.● Питання та обговорення
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Що таке 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/• Додати ключ репозиторія:
• Додати запис репозиторія у /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
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):
• Запуск 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
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
Питання та обговорення“Анатолій Охотніков”
Top Related