SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Continuous Integration
&
JetBrains TeamCity
Що Таке СІ?

Це практика розробки програмного
забезпечення, в якій члени всієї
команди часто інтегрують свої наробки.

Кожна інтеграція верифікується
автоматичним білдом, включаючи
тести.
Типовий процес СІ розробки
Основні Принципи
○
○
○
○
○
○
○
○
○

Підтримка репозиторію коду
Автоматизований білд
Автоматичне Тестування білду.
Кожен інтегрує зміни в основну гілку кожен день або 2.
Кожен коміт повинен бути збілджений (протестований).
Білд повинен бути швидким.
Тестувати в енваєрменті такому ж як і продакшен
Білд повинен бути легко доступні для тестерів і всіх зіцікавлених.
Збілджений код повинен бути доступним для всіх зацікавлених
Переваги
○

Проблеми інтеграції виявляються і виправляються швидко, що
обходиться дешевше;

○

Негайний прогін модульних тестів для свіжих змін;

○

Постійна наявність поточної стабільної версії разом з продуктами
збірок - для тестування, демонстрації і т.д

○

Часті перевірки коду підштовхують девелоперів до написання
модульного, менш складного коду

○

Миттєвий ефект від неповного або непрацюючого коду привчає
розробників до роботи в ітеративному режимі з більш коротким циклом
Недоліки
○ Витрати на налаштування роботи безперервної інтеграції;
○ Потенційна необхідність у виділеному сервері під потреби
безперервної інтеграції;
○ Боязнь “поламаного” коду (негайний ефект при тестуванні).
Автоматизовані засоби
●
●
●
●
●
●

CruiseControl
Hudson/Jenkins
Atlassian Bamboo
JetBrains TeamCity
...
...
Причини вибору TeamCity
○
○
○
○
○

Зручний і зрозумілий інтерфейс
Підтримка парсінгу логів основних аналізаторів коду “з коробки”
Не потрібно доставляти плагіни(для PHP-проектів).
Гнучкість і зрозумілість в налаштуванні
Просто шикарна документація
Налаштування
Перналаштувати на MySQL:
Рекомендована конфігурація DB:
○

InnoDB storage engine

○

UTF-8 character set

○

case-sensitive collation

Інсталяція драйвера:
●

Завантажити драйвер з http://dev.mysql.com/downloads/connector/j/

●

скопіювати mysql-connector-java-*-bin.jar в <TeamCity Data Directory>/lib/jdbc

●

створити базу і користувача для TeamCity

●

В папці <TeamCity data directory>/config перейменувати файл database.mysql.properties
в database.properties і вказати налаштування:
connectionUrl=jdbc:mysql://<host>/<database name>
connectionProperties.user=<user>
connectionProperties.password=<password>
Інсталяція TeamCity
Створення Проекту
Створення Проекту
Створення Проекту
Налаштування білду
Налаштування Експорту з VCS
Налаштування SVN
Налаштування SVN
Налаштування Build Runner
Налаштування Build Runner
Налаштування білду
Налаштування Build Triggering
Все готово !
Запуск Білда
Build Agent
Artifacts
Як їх "збирати"? :)
build.xml
<!-- Unit Tests & coverage analysis -->
<target name="phpunit">
<echo message="PHP Unit..." />
<exec executable="phpunit" failonerror="true">
<env key="APPLICATION_ENV" value="testing"/>
<arg line="--log-junit ${builddir}/logs/phpunit.xml" />
<arg line="--coverage-clover ${builddir}/logs/coverage/clover.xml" />
<arg line="--coverage-html ${builddir}/logs/coverage/" />
<arg line="-c ${sourcedir}/tests/phpunit.xml" />
</exec>
<echo
message="##teamcity[importData type='junit' path='${builddir}/logs/phpunit.xml' whenNoDataPublished='error']"
description="Import to TeamCity"
/>
<echo
message="##teamcity[publishArtifacts '${builddir}/logs/phpunit.log']"
description="Import phpunit log to TeamCity"
/>
<zip destfile="${builddir}/logs/coverage.zip" basedir="${builddir}/logs/coverage" whenempty="skip" />
<echo
message="##teamcity[publishArtifacts '${builddir}/logs/coverage.zip']"
/>
</target>
Нотіфікейшени
Репорти
Особлявості Налаштування для
SCD
Налаштування параметрів білда
Налаштування чекаут
Налаштування Build Runner
Додаткові фічі
○ Кастомні репорти
○ Інтеграція з IDE
○ Інтеграція з JIRA
○ Ран BuildAgent на Amazon EC2
○ Залежність між білдами
○ "Ланцюги" білдів
○ .....
Дакую за увагу :)

Weitere ähnliche Inhalte

Ähnlich wie Continious integration jet brains teamcity. Віталій Галушка

Continuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій ОхотніковContinuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій ОхотніковIgor Bronovskyy
 
ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)Anatoliy Okhotnikov
 
Aspnet core
Aspnet coreAspnet core
Aspnet coreeleksdev
 
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...GoQA
 
Як покращити Python web UI тести
Як покращити Python web UI тестиЯк покращити Python web UI тести
Як покращити Python web UI тестиRomanPobotin1
 
[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
 
Caliburn Micro Overview
Caliburn Micro OverviewCaliburn Micro Overview
Caliburn Micro OverviewKiev ALT.NET
 
Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...
Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...
Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...Lviv Startup Club
 
"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii NasinnykFwdays
 
Docsvision Кирильчук Сергій
Docsvision Кирильчук СергійDocsvision Кирильчук Сергій
Docsvision Кирильчук СергійDokymentoznavstvo111
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon Meetups
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...Andrii Podanenko
 
AngularJS on Javascript User Group, Lviv
AngularJS on Javascript User Group, LvivAngularJS on Javascript User Group, Lviv
AngularJS on Javascript User Group, LvivDmitriy Hunkin
 
Lecture 202 - DB design and implementation
Lecture 202 - DB design and implementationLecture 202 - DB design and implementation
Lecture 202 - DB design and implementationAndrii Kopp
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basicseleksdev
 
Alexey Borisenko - Network Programmability using Python
Alexey Borisenko - Network Programmability using PythonAlexey Borisenko - Network Programmability using Python
Alexey Borisenko - Network Programmability using PythonPyCon Odessa
 
Бізнес_процеси_М7_Інструменти_опису_БП.pptx
Бізнес_процеси_М7_Інструменти_опису_БП.pptxБізнес_процеси_М7_Інструменти_опису_БП.pptx
Бізнес_процеси_М7_Інструменти_опису_БП.pptxRostyslavDmytruk
 
Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...
Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...
Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...Collaborator.pro
 

Ähnlich wie Continious integration jet brains teamcity. Віталій Галушка (20)

Continuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій ОхотніковContinuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій Охотніков
 
ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)
 
Aspnet core
Aspnet coreAspnet core
Aspnet core
 
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
 
Як покращити Python web UI тести
Як покращити Python web UI тестиЯк покращити Python web UI тести
Як покращити Python web UI тести
 
[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)
 
Web 5
Web 5Web 5
Web 5
 
Caliburn Micro Overview
Caliburn Micro OverviewCaliburn Micro Overview
Caliburn Micro Overview
 
Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...
Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...
Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...
 
"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii Nasinnyk
 
Docsvision Кирильчук Сергій
Docsvision Кирильчук СергійDocsvision Кирильчук Сергій
Docsvision Кирильчук Сергій
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020
 
ASP.Net MVC
ASP.Net MVCASP.Net MVC
ASP.Net MVC
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...
 
AngularJS on Javascript User Group, Lviv
AngularJS on Javascript User Group, LvivAngularJS on Javascript User Group, Lviv
AngularJS on Javascript User Group, Lviv
 
Lecture 202 - DB design and implementation
Lecture 202 - DB design and implementationLecture 202 - DB design and implementation
Lecture 202 - DB design and implementation
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
 
Alexey Borisenko - Network Programmability using Python
Alexey Borisenko - Network Programmability using PythonAlexey Borisenko - Network Programmability using Python
Alexey Borisenko - Network Programmability using Python
 
Бізнес_процеси_М7_Інструменти_опису_БП.pptx
Бізнес_процеси_М7_Інструменти_опису_БП.pptxБізнес_процеси_М7_Інструменти_опису_БП.pptx
Бізнес_процеси_М7_Інструменти_опису_БП.pptx
 
Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...
Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...
Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...
 

Mehr von HRdepartment

Юзабіліті в сучасному дизайні. Сергій Ганжа
Юзабіліті в сучасному дизайні. Сергій ГанжаЮзабіліті в сучасному дизайні. Сергій Ганжа
Юзабіліті в сучасному дизайні. Сергій ГанжаHRdepartment
 
Чому юзабіліті. Мар'яна Онисько
Чому юзабіліті.  Мар'яна ОниськоЧому юзабіліті.  Мар'яна Онисько
Чому юзабіліті. Мар'яна ОниськоHRdepartment
 
Тренінг дизайн. Максим Орловський
Тренінг дизайн. Максим ОрловськийТренінг дизайн. Максим Орловський
Тренінг дизайн. Максим ОрловськийHRdepartment
 
Cтрах кращий друг і підступний ворог. Cергій Кутузов
Cтрах  кращий друг і підступний ворог. Cергій КутузовCтрах  кращий друг і підступний ворог. Cергій Кутузов
Cтрах кращий друг і підступний ворог. Cергій КутузовHRdepartment
 
Секрети англ. копірайтингу. Марічка Балук
Секрети англ. копірайтингу. Марічка БалукСекрети англ. копірайтингу. Марічка Балук
Секрети англ. копірайтингу. Марічка БалукHRdepartment
 
Самомотивація. Сергій Кутузов
Самомотивація. Сергій КутузовСамомотивація. Сергій Кутузов
Самомотивація. Сергій КутузовHRdepartment
 
Проект Api2cart. Петро Комар
Проект Api2cart. Петро КомарПроект Api2cart. Петро Комар
Проект Api2cart. Петро КомарHRdepartment
 
Прийняття рішень. Анатолій Денис
Прийняття рішень. Анатолій ДенисПрийняття рішень. Анатолій Денис
Прийняття рішень. Анатолій ДенисHRdepartment
 
Останні офіційні оновлення алгоритму Google (літо 2012). Мар'яна Онисько
Останні офіційні оновлення алгоритму Google (літо 2012). Мар'яна ОниськоОстанні офіційні оновлення алгоритму Google (літо 2012). Мар'яна Онисько
Останні офіційні оновлення алгоритму Google (літо 2012). Мар'яна ОниськоHRdepartment
 
Основи письмових комунікацій. Сергій Кутузов
Основи письмових комунікацій. Сергій КутузовОснови письмових комунікацій. Сергій Кутузов
Основи письмових комунікацій. Сергій КутузовHRdepartment
 
Основи Html. Сергій Жуков
Основи Html. Сергій ЖуковОснови Html. Сергій Жуков
Основи Html. Сергій ЖуковHRdepartment
 
Новий Контейнер міграції С2С. Віктор Твердун
Новий Контейнер міграції С2С. Віктор Твердун Новий Контейнер міграції С2С. Віктор Твердун
Новий Контейнер міграції С2С. Віктор Твердун HRdepartment
 
Маркетингова стратегія 8 з 10 Юра Стах
Маркетингова стратегія 8 з 10 Юра СтахМаркетингова стратегія 8 з 10 Юра Стах
Маркетингова стратегія 8 з 10 Юра СтахHRdepartment
 
Маркетингова Стратегія 8 з 10. Юра Стах
Маркетингова Стратегія 8 з 10. Юра СтахМаркетингова Стратегія 8 з 10. Юра Стах
Маркетингова Стратегія 8 з 10. Юра СтахHRdepartment
 
Контентна стратегія просування іт продукту. Галя Єфимчук
Контентна стратегія просування іт продукту. Галя ЄфимчукКонтентна стратегія просування іт продукту. Галя Єфимчук
Контентна стратегія просування іт продукту. Галя ЄфимчукHRdepartment
 
Вебинар по Yaware. Оля Трофімова
Вебинар по Yaware. Оля ТрофімоваВебинар по Yaware. Оля Трофімова
Вебинар по Yaware. Оля ТрофімоваHRdepartment
 
Веб аналітика типові задачі та методи вирішень. Мар'яна Онисько
Веб аналітика  типові задачі та методи вирішень. Мар'яна ОниськоВеб аналітика  типові задачі та методи вирішень. Мар'яна Онисько
Веб аналітика типові задачі та методи вирішень. Мар'яна ОниськоHRdepartment
 
Архітектура типових рішень з використанням Api2cart Юрій Кріль
Архітектура типових рішень з використанням Api2cart Юрій КрільАрхітектура типових рішень з використанням Api2cart Юрій Кріль
Архітектура типових рішень з використанням Api2cart Юрій КрільHRdepartment
 
Social media marketing. Галя Вільчинська
Social media  marketing. Галя ВільчинськаSocial media  marketing. Галя Вільчинська
Social media marketing. Галя ВільчинськаHRdepartment
 
SMM - Dima Lazarchuk
SMM - Dima LazarchukSMM - Dima Lazarchuk
SMM - Dima LazarchukHRdepartment
 

Mehr von HRdepartment (20)

Юзабіліті в сучасному дизайні. Сергій Ганжа
Юзабіліті в сучасному дизайні. Сергій ГанжаЮзабіліті в сучасному дизайні. Сергій Ганжа
Юзабіліті в сучасному дизайні. Сергій Ганжа
 
Чому юзабіліті. Мар'яна Онисько
Чому юзабіліті.  Мар'яна ОниськоЧому юзабіліті.  Мар'яна Онисько
Чому юзабіліті. Мар'яна Онисько
 
Тренінг дизайн. Максим Орловський
Тренінг дизайн. Максим ОрловськийТренінг дизайн. Максим Орловський
Тренінг дизайн. Максим Орловський
 
Cтрах кращий друг і підступний ворог. Cергій Кутузов
Cтрах  кращий друг і підступний ворог. Cергій КутузовCтрах  кращий друг і підступний ворог. Cергій Кутузов
Cтрах кращий друг і підступний ворог. Cергій Кутузов
 
Секрети англ. копірайтингу. Марічка Балук
Секрети англ. копірайтингу. Марічка БалукСекрети англ. копірайтингу. Марічка Балук
Секрети англ. копірайтингу. Марічка Балук
 
Самомотивація. Сергій Кутузов
Самомотивація. Сергій КутузовСамомотивація. Сергій Кутузов
Самомотивація. Сергій Кутузов
 
Проект Api2cart. Петро Комар
Проект Api2cart. Петро КомарПроект Api2cart. Петро Комар
Проект Api2cart. Петро Комар
 
Прийняття рішень. Анатолій Денис
Прийняття рішень. Анатолій ДенисПрийняття рішень. Анатолій Денис
Прийняття рішень. Анатолій Денис
 
Останні офіційні оновлення алгоритму Google (літо 2012). Мар'яна Онисько
Останні офіційні оновлення алгоритму Google (літо 2012). Мар'яна ОниськоОстанні офіційні оновлення алгоритму Google (літо 2012). Мар'яна Онисько
Останні офіційні оновлення алгоритму Google (літо 2012). Мар'яна Онисько
 
Основи письмових комунікацій. Сергій Кутузов
Основи письмових комунікацій. Сергій КутузовОснови письмових комунікацій. Сергій Кутузов
Основи письмових комунікацій. Сергій Кутузов
 
Основи Html. Сергій Жуков
Основи Html. Сергій ЖуковОснови Html. Сергій Жуков
Основи Html. Сергій Жуков
 
Новий Контейнер міграції С2С. Віктор Твердун
Новий Контейнер міграції С2С. Віктор Твердун Новий Контейнер міграції С2С. Віктор Твердун
Новий Контейнер міграції С2С. Віктор Твердун
 
Маркетингова стратегія 8 з 10 Юра Стах
Маркетингова стратегія 8 з 10 Юра СтахМаркетингова стратегія 8 з 10 Юра Стах
Маркетингова стратегія 8 з 10 Юра Стах
 
Маркетингова Стратегія 8 з 10. Юра Стах
Маркетингова Стратегія 8 з 10. Юра СтахМаркетингова Стратегія 8 з 10. Юра Стах
Маркетингова Стратегія 8 з 10. Юра Стах
 
Контентна стратегія просування іт продукту. Галя Єфимчук
Контентна стратегія просування іт продукту. Галя ЄфимчукКонтентна стратегія просування іт продукту. Галя Єфимчук
Контентна стратегія просування іт продукту. Галя Єфимчук
 
Вебинар по Yaware. Оля Трофімова
Вебинар по Yaware. Оля ТрофімоваВебинар по Yaware. Оля Трофімова
Вебинар по Yaware. Оля Трофімова
 
Веб аналітика типові задачі та методи вирішень. Мар'яна Онисько
Веб аналітика  типові задачі та методи вирішень. Мар'яна ОниськоВеб аналітика  типові задачі та методи вирішень. Мар'яна Онисько
Веб аналітика типові задачі та методи вирішень. Мар'яна Онисько
 
Архітектура типових рішень з використанням Api2cart Юрій Кріль
Архітектура типових рішень з використанням Api2cart Юрій КрільАрхітектура типових рішень з використанням Api2cart Юрій Кріль
Архітектура типових рішень з використанням Api2cart Юрій Кріль
 
Social media marketing. Галя Вільчинська
Social media  marketing. Галя ВільчинськаSocial media  marketing. Галя Вільчинська
Social media marketing. Галя Вільчинська
 
SMM - Dima Lazarchuk
SMM - Dima LazarchukSMM - Dima Lazarchuk
SMM - Dima Lazarchuk
 

Continious integration jet brains teamcity. Віталій Галушка