jenkins ci (ukr)
DESCRIPTION
● Що таке Continuous Integration? ● Jenkins (Oracle Hudson) ● Установка Jenkins (Ubuntu Server) ● Створення завдання на прикладі Java ● Інструменти статичного аналізу ● Sonar. Установка. Аналітика.TRANSCRIPT
![Page 1: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/1.jpg)
Jenkins/Sonar CI22/11/2011
![Page 2: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/2.jpg)
Softjourn Inc.
Jenkins/Sonar CI
Anatoliy Okhotnikov
Softjourn Inc.
![Page 3: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/3.jpg)
Про що буде йти мова
● Що таке Continuous Integration?● Jenkins (Oracle Hudson)● Установка Jenkins (Ubuntu Server)● Створення завдання на прикладі Java● Інструменти статичного аналізу● Sonar. Установка. Аналітика.● Питання та обговорення
![Page 4: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/4.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Що таке continuous integration (CI)• Continuous Integration (неперервна
інтеграція) це практика розробки пз, у якій члени команди часто інтегруть свої наробки; звично кожен інтегрує принаймі щоденно, що призводить до багатьох інтеграцій на день.
• Кожна інтеграція перевіряється автоматичною побудовою (включно з тестами) щоб виявити помилки інтегрування якнайшвидше.
• Інтеграція це вид процесу “заплати мені зараз або заплатиш потім більше”
![Page 5: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/5.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Jenkins (Oracle Hudson)• Легке встановлення• Легка конфігурація• Підтримка наборів змін• Постійні посилання• Інтеграція з RSS/E-mail/IM• Після-фактичні мітки• Звітування JUnit/TestNG• Розподілені побудови• “Відбитки” фалів• Підтримка плагінів
![Page 6: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/6.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/7.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/8.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Приклад Java проекту
• Автоматичний моніторинг SCM• Побудова проекту• Автоматичне тестування• Статичний аналіз коду• Публікація артифактів• Автоматичне впровадження• Інструменти: Ant, Maven, JUnit,
PMD, FindBugs, Sonar
![Page 9: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/9.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Створення Build Job
• Build a free-style software project:
![Page 10: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/10.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Збереження білдів
• Зберігаємо 1, решту – видаляємо:
![Page 11: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/11.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Налаштування SCM
• “Source Code Management”
• Credentials:
![Page 12: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/12.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Побудова за допомогою Maven
• Додамо Maven у Build секції:
• Перевіряти SCM кожні 5 хвилин:
![Page 13: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/13.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Архівація та впровадження
• Збудованого артефакту:
![Page 14: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/14.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/15.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Запуск Інструментів Аналізу
• “Post Steps”: Invoke Ant
build.xml у workspace проекту
![Page 16: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/16.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Налаштування задач FindBugs та PMD• Додати два елементи “taskdef” у файл
побудови:
![Page 17: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/17.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Налаштування цілей FindBugs та PMD• Додати два елементи “target” у файл
побудови:
![Page 18: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/18.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Результат Побудови
• Доступні звіти FindBugs та PMD:
![Page 19: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/19.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Звіт FindBugs
• Попередження:
![Page 20: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/20.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Звіт PMD
• Попередження:
![Page 21: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/21.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/22.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Архітектура Sonar
![Page 23: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/23.jpg)
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)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/24.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Конфігурація Sonar у Jenkins
• Додамо у “Post-build Actions”:
![Page 25: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/25.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Метрики Sonar
![Page 26: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/26.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Motion Chart
![Page 27: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/27.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Radiator
![Page 28: Jenkins CI (ukr)](https://reader034.vdocuments.site/reader034/viewer/2022050808/55580e9ed8b42ae31c8b54d2/html5/thumbnails/28.jpg)
Copyright © 2000-2011 Softjourn, Inc. All rights reserved
Питання та обговорення“Анатолій Охотніков”