SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
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
○ Залежність між білдами
○ "Ланцюги" білдів
○ .....
Дакую за увагу :)

Mais conteúdo relacionado

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

Docsvision Кирильчук Сергій
Docsvision Кирильчук СергійDocsvision Кирильчук Сергій
Docsvision Кирильчук Сергій
Dokymentoznavstvo111
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
eleksdev
 
Alexey Borisenko - Network Programmability using Python
Alexey Borisenko - Network Programmability using PythonAlexey Borisenko - Network Programmability using Python
Alexey Borisenko - Network Programmability using Python
PyCon Odessa
 
Бізнес_процеси_М7_Інструменти_опису_БП.pptx
Бізнес_процеси_М7_Інструменти_опису_БП.pptxБізнес_процеси_М7_Інструменти_опису_БП.pptx
Бізнес_процеси_М7_Інструменти_опису_БП.pptx
RostyslavDmytruk
 
Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...
Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...
Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...
Collaborator.pro
 

Semelhante a 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...
 

Mais de 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 Lazarchuk
HRdepartment
 

Mais de 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. Віталій Галушка