SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie Jenkins CI (ukr)

Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon Meetups
 
Програмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіївПрограмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіївjap2006
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIПупена Александр
 
Восколович Андрій Віталійович
Восколович Андрій ВіталійовичВосколович Андрій Віталійович
Восколович Андрій ВіталійовичAndriy1745
 
Восколович Андрій Віталійович
Восколович Андрій ВіталійовичВосколович Андрій Віталійович
Восколович Андрій ВіталійовичAndriy1745
 
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded Systemitconnect2016
 
Казьмірчук Р.Р. (06.03.2012)
Казьмірчук Р.Р. (06.03.2012)Казьмірчук Р.Р. (06.03.2012)
Казьмірчук Р.Р. (06.03.2012)garasym
 
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)Exoft LLC
 
Computers and Computing Works lecture №7
Computers and Computing Works lecture №7Computers and Computing Works lecture №7
Computers and Computing Works lecture №7Lesia Sobolevska
 
Презентація до 18 уроку в 8 класі "Захоплення аудіо та відео, створення аудіо...
Презентація до 18 уроку в 8 класі "Захоплення аудіо та відео, створення аудіо...Презентація до 18 уроку в 8 класі "Захоплення аудіо та відео, створення аудіо...
Презентація до 18 уроку в 8 класі "Захоплення аудіо та відео, створення аудіо...Юлія Артюх
 
Programne zabezpechenna(pz)
Programne zabezpechenna(pz)Programne zabezpechenna(pz)
Programne zabezpechenna(pz)Oksana Kutsenko
 
Роман Якобчук "Real-life React"
Роман Якобчук "Real-life React"Роман Якобчук "Real-life React"
Роман Якобчук "Real-life React"Fwdays
 
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ..."Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...Fwdays
 
практична частина
практична частинапрактична частина
практична частинаbabuch12
 

Ähnlich wie Jenkins CI (ukr) (20)

Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020
 
Програмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіївПрограмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіїв
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
 
Урок 1
Урок 1Урок 1
Урок 1
 
8 клас урок 7
8 клас урок 78 клас урок 7
8 клас урок 7
 
Восколович Андрій Віталійович
Восколович Андрій ВіталійовичВосколович Андрій Віталійович
Восколович Андрій Віталійович
 
Восколович Андрій Віталійович
Восколович Андрій ВіталійовичВосколович Андрій Віталійович
Восколович Андрій Віталійович
 
#0 Вступна лекція
#0 Вступна лекція#0 Вступна лекція
#0 Вступна лекція
 
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded System
 
Казьмірчук Р.Р. (06.03.2012)
Казьмірчук Р.Р. (06.03.2012)Казьмірчук Р.Р. (06.03.2012)
Казьмірчук Р.Р. (06.03.2012)
 
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
 
Урок №16 8 клас
Урок №16 8 класУрок №16 8 клас
Урок №16 8 клас
 
Computers and Computing Works lecture №7
Computers and Computing Works lecture №7Computers and Computing Works lecture №7
Computers and Computing Works lecture №7
 
Презентація до 18 уроку в 8 класі "Захоплення аудіо та відео, створення аудіо...
Презентація до 18 уроку в 8 класі "Захоплення аудіо та відео, створення аудіо...Презентація до 18 уроку в 8 класі "Захоплення аудіо та відео, створення аудіо...
Презентація до 18 уроку в 8 класі "Захоплення аудіо та відео, створення аудіо...
 
Programne zabezpechenna(pz)
Programne zabezpechenna(pz)Programne zabezpechenna(pz)
Programne zabezpechenna(pz)
 
10_8
10_810_8
10_8
 
MOM
MOMMOM
MOM
 
Роман Якобчук "Real-life React"
Роман Якобчук "Real-life React"Роман Якобчук "Real-life React"
Роман Якобчук "Real-life React"
 
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ..."Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
 
практична частина
практична частинапрактична частина
практична частина
 

Mehr von Anatoliy Okhotnikov

Mehr von Anatoliy Okhotnikov (16)

Agile (IF PM Group) v2
Agile (IF PM Group) v2Agile (IF PM Group) v2
Agile (IF PM Group) v2
 
Xdebug (ukr)
Xdebug (ukr)Xdebug (ukr)
Xdebug (ukr)
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
 
Web application security (eng)
Web application security (eng)Web application security (eng)
Web application security (eng)
 
Php web app security (eng)
Php web app security (eng)Php web app security (eng)
Php web app security (eng)
 
User story workflow (eng)
User story workflow (eng)User story workflow (eng)
User story workflow (eng)
 
Unit testing (eng)
Unit testing (eng)Unit testing (eng)
Unit testing (eng)
 
Ubuntu server wireless access point (eng)
Ubuntu server wireless access point (eng)Ubuntu server wireless access point (eng)
Ubuntu server wireless access point (eng)
 
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
 
Php unit (eng)
Php unit (eng)Php unit (eng)
Php unit (eng)
 
Ldap introduction (eng)
Ldap introduction (eng)Ldap introduction (eng)
Ldap introduction (eng)
 
Linux introduction (eng)
Linux introduction (eng)Linux introduction (eng)
Linux introduction (eng)
 
ITEvent: Kanban Intro (ukr)
ITEvent: Kanban Intro (ukr)ITEvent: Kanban Intro (ukr)
ITEvent: Kanban Intro (ukr)
 
Debug (ukr)
Debug (ukr)Debug (ukr)
Debug (ukr)
 
Continuous integration (eng)
Continuous integration (eng)Continuous integration (eng)
Continuous integration (eng)
 
Agile Feedback Loops (ukr)
Agile Feedback Loops (ukr)Agile Feedback Loops (ukr)
Agile Feedback Loops (ukr)
 

Jenkins CI (ukr)

  • 2. Softjourn Inc. Jenkins/Sonar CI Anatoliy Okhotnikov Softjourn Inc.
  • 3. Про що буде йти мова ● Що таке Continuous Integration? ● Jenkins (Oracle Hudson) ● Установка Jenkins (Ubuntu Server) ● Створення завдання на прикладі Java ● Інструменти статичного аналізу ● Sonar. Установка. Аналітика. ● Питання та обговорення
  • 4. Що таке continuous integration (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 (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
  • 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 • “Source Code 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 (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
  • 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-2011 Softjourn, Inc. All rights reserved
  • 28. Питання та обговорення “Анатолій Охотніков” <aokhotnikov@softjourn.com> Copyright © 2000-2011 Softjourn, Inc. All rights reserved