Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CI для Android проектів: навіщо і як?

CI для Android проектів: навіщо і як?

Онлайн вебінар 23.04.2020.

- Навіщо використовувати CI в Android проектах.
- Як налаштувати CI вперше.

Відео: https://www.youtube.com/watch?v=Qmk3AB-1NZw

Avatar for Andrii Chubko

Andrii Chubko

December 07, 2020
Tweet

More Decks by Andrii Chubko

Other Decks in Programming

Transcript

  1. План 1. Що таке CI (Continuous Integration) та для чого

    вона потрібна 2. Як обрати рішення для CI 3. Як налаштувати першу CI систему 4. Оптимізація CI 3
  2. ▪ Нескінченні дискусії щодо “правильного” стилю у коді ▪ Мертві

    тести ▪ Ручна збірка та надсилання apk тестувальникам ▪ Ключі доступу “безпечно” розкидані по комп’ютерах та нотатках ▪ Ручне оновлення інформації на всіх сервісах, які ви використовуєте – Jira, Github, Play Store і т.д. 6 Проблеми, які вирішує CI Налаштування CI Оптимізація CI 01. ЩО ТАКЕ CI Вибір CI
  3. ▪ Автоматизація процесів – економія часу та зусиль ▪ Раннє

    виявлення проблем ▪ Більша впевненість у якості коду та продукту ▪ Простіші та частіші релізи 9 Переваги CI Налаштування CI Оптимізація CI 01. ЩО ТАКЕ CI Вибір CI
  4. ▪ Налаштування та підтримка CI забирають час ▪ Додаткове очікування,

    доки всі завдання пройдуть на CI 10 Підводні камені CI Налаштування CI Оптимізація CI 01. ЩО ТАКЕ CI Вибір CI
  5. ▪ Hosted vs On-premises ▪ Сумісність з сервісами, які ви

    використовуєте ▪ Ціна ▪ Підтримка та популярність 11 Вибір CI рішення: на що зважати? Що таке CI Налаштування CI Оптимізація CI 02. ВИБІР CI
  6. ✅ Гнучкий ✅ Велика екосистема (open source) ❌ Складна підтримка,

    що забирає багато часу ❌ Боляче 12 Jenkins Що таке CI Налаштування CI Оптимізація CI 02. ВИБІР CI
  7. ✅ Гнучкий ✅ Велика екосистема (open source) ❌ Складна підтримка,

    що забирає багато часу ❌ Боляче 13 Jenkins Що таке CI Налаштування CI Оптимізація CI 02. ВИБІР CI
  8. ✅ Прості в налаштуванні ✅ Багато цінових планів, наявність безкоштовних

    ❌ Залежність від постачальника послуг 14 Що таке CI Налаштування CI Оптимізація CI 02. ВИБІР CI
  9. ▪ Fastlane – спрощене налаштування релізів (бета, публічних), запуску тестів

    та збору результатів ▪ Gradle Play Publisher – реліз в Google Play 15 Допоміжні інструменти Що таке CI Налаштування CI Оптимізація CI 02. ВИБІР CI
  10. CI workflow – набір сценаріїв, що визначають послідовність виконання завдань.

    16 Створення workflow: що це? Що таке CI Оптимізація CI 03. НАЛАШТУВАННЯ CI Вибір CI
  11. ▪ Git workflow – типи гілок, формат комітів ▪ Коли

    і які тести запускати ▪ Доставка додатку для тестування / релізу ▪ Які дані потрібно надсилати тестувальникам / користувачам 17 Створення workflow: про що думати? Що таке CI Оптимізація CI 03. НАЛАШТУВАННЯ CI Вибір CI
  12. 20 Налаштовуємо Android середовище Що таке CI Оптимізація CI 03.

    НАЛАШТУВАННЯ CI Вибір CI config.yml – YAML формат
  13. 24 Що таке CI Оптимізація CI 03. НАЛАШТУВАННЯ CI Вибір

    CI Job у файлі конфігурації Job на CI сервісі
  14. 27 Що таке CI Оптимізація CI 03. НАЛАШТУВАННЯ CI Вибір

    CI Workflow у файлі конфігурації Workflow на CI сервісі
  15. ▪ Час ▪ Необхідні ресурси ▪ Грошові витрати 29 CI:

    що оптимізуємо? 04. ОПТИМІЗАЦІЯ CI Що таке CI Вибір CI Налаштування CI
  16. ▪ Покупка нових ресурсів ▪ Паралелізація ▪ Оптимізація налаштувань пам’яті

    в Gradle ▪ Кешування ▪ Збирати apk замість bundle (для не Google Play релізів) ▪ Збирати конкретні варіанти Android build (напр. buildDebugProd замість buildDebug) 30 Приклади оптимізації CI 04. ОПТИМІЗАЦІЯ CI Що таке CI Вибір CI Налаштування CI
  17. ▪ Файл налаштування з презентації ▪ Сторінка CircleCI для проекту

    з презентації ▪ Теоретичні статті на Atlassian ▪ CircleCI для Android - офіційна документація ▪ Кешування за багатьма файлами на CircleCI ▪ Налаштування Firebase Test Lab з CircleCI ▪ Advanced приклад налаштування CircleCI ▪ Огляд різних Git flow та їх зв’язку з CI Джерела інформації 36