2. Що Таке СІ?
Це практика розробки програмного
забезпечення, в якій члени всієї
команди часто інтегрують свої наробки.
Кожна інтеграція верифікується
автоматичним білдом, включаючи
тести.
4. Основні Принципи
○
○
○
○
○
○
○
○
○
Підтримка репозиторію коду
Автоматизований білд
Автоматичне Тестування білду.
Кожен інтегрує зміни в основну гілку кожен день або 2.
Кожен коміт повинен бути збілджений (протестований).
Білд повинен бути швидким.
Тестувати в енваєрменті такому ж як і продакшен
Білд повинен бути легко доступні для тестерів і всіх зіцікавлених.
Збілджений код повинен бути доступним для всіх зацікавлених
5. Переваги
○
Проблеми інтеграції виявляються і виправляються швидко, що
обходиться дешевше;
○
Негайний прогін модульних тестів для свіжих змін;
○
Постійна наявність поточної стабільної версії разом з продуктами
збірок - для тестування, демонстрації і т.д
○
Часті перевірки коду підштовхують девелоперів до написання
модульного, менш складного коду
○
Миттєвий ефект від неповного або непрацюючого коду привчає
розробників до роботи в ітеративному режимі з більш коротким циклом
6. Недоліки
○ Витрати на налаштування роботи безперервної інтеграції;
○ Потенційна необхідність у виділеному сервері під потреби
безперервної інтеграції;
○ Боязнь “поламаного” коду (негайний ефект при тестуванні).
8. Причини вибору TeamCity
○
○
○
○
○
Зручний і зрозумілий інтерфейс
Підтримка парсінгу логів основних аналізаторів коду “з коробки”
Не потрібно доставляти плагіни(для PHP-проектів).
Гнучкість і зрозумілість в налаштуванні
Просто шикарна документація
9. Налаштування
Перналаштувати на 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>
33. Додаткові фічі
○ Кастомні репорти
○ Інтеграція з IDE
○ Інтеграція з JIRA
○ Ран BuildAgent на Amazon EC2
○ Залежність між білдами
○ "Ланцюги" білдів
○ .....