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

335 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Continuous Integration & JetBrains TeamCity
  2. 2. Що Таке СІ? Це практика розробки програмного забезпечення, в якій члени всієї команди часто інтегрують свої наробки. Кожна інтеграція верифікується автоматичним білдом, включаючи тести.
  3. 3. Типовий процес СІ розробки
  4. 4. Основні Принципи ○ ○ ○ ○ ○ ○ ○ ○ ○ Підтримка репозиторію коду Автоматизований білд Автоматичне Тестування білду. Кожен інтегрує зміни в основну гілку кожен день або 2. Кожен коміт повинен бути збілджений (протестований). Білд повинен бути швидким. Тестувати в енваєрменті такому ж як і продакшен Білд повинен бути легко доступні для тестерів і всіх зіцікавлених. Збілджений код повинен бути доступним для всіх зацікавлених
  5. 5. Переваги ○ Проблеми інтеграції виявляються і виправляються швидко, що обходиться дешевше; ○ Негайний прогін модульних тестів для свіжих змін; ○ Постійна наявність поточної стабільної версії разом з продуктами збірок - для тестування, демонстрації і т.д ○ Часті перевірки коду підштовхують девелоперів до написання модульного, менш складного коду ○ Миттєвий ефект від неповного або непрацюючого коду привчає розробників до роботи в ітеративному режимі з більш коротким циклом
  6. 6. Недоліки ○ Витрати на налаштування роботи безперервної інтеграції; ○ Потенційна необхідність у виділеному сервері під потреби безперервної інтеграції; ○ Боязнь “поламаного” коду (негайний ефект при тестуванні).
  7. 7. Автоматизовані засоби ● ● ● ● ● ● CruiseControl Hudson/Jenkins Atlassian Bamboo JetBrains TeamCity ... ...
  8. 8. Причини вибору TeamCity ○ ○ ○ ○ ○ Зручний і зрозумілий інтерфейс Підтримка парсінгу логів основних аналізаторів коду “з коробки” Не потрібно доставляти плагіни(для PHP-проектів). Гнучкість і зрозумілість в налаштуванні Просто шикарна документація
  9. 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>
  10. 10. Інсталяція TeamCity
  11. 11. Створення Проекту
  12. 12. Створення Проекту
  13. 13. Створення Проекту
  14. 14. Налаштування білду
  15. 15. Налаштування Експорту з VCS
  16. 16. Налаштування SVN
  17. 17. Налаштування SVN
  18. 18. Налаштування Build Runner
  19. 19. Налаштування Build Runner
  20. 20. Налаштування білду
  21. 21. Налаштування Build Triggering
  22. 22. Все готово !
  23. 23. Запуск Білда
  24. 24. Build Agent
  25. 25. Artifacts
  26. 26. Як їх "збирати"? :) 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>
  27. 27. Нотіфікейшени
  28. 28. Репорти
  29. 29. Особлявості Налаштування для SCD
  30. 30. Налаштування параметрів білда
  31. 31. Налаштування чекаут
  32. 32. Налаштування Build Runner
  33. 33. Додаткові фічі ○ Кастомні репорти ○ Інтеграція з IDE ○ Інтеграція з JIRA ○ Ран BuildAgent на Amazon EC2 ○ Залежність між білдами ○ "Ланцюги" білдів ○ .....
  34. 34. Дакую за увагу :)

×