CI/CD для маленькой команды с эмулятором и Docker’ом

916b2b50d1c958f9ed1c008623065b8a?s=47 MOSDROID
September 13, 2019

CI/CD для маленькой команды с эмулятором и Docker’ом

Никита Куликов, Mail.Ru Group at #MOSDROID 19 Potassium [in KasperskyLab HeadQuarter]

Рано или поздно команда или разработчик приходит к тому, что неплохо на проекте иметь CI/CD для автопрогона тестов (у вас же есть тесты, да?), рассылки билда тестировщикам, разработчикам backend, контроля качества кода. В докладе мы разберем по пунктам, как сделать CI/CD быстро и стабильно. Какие существуют решения в данной области и почему они.

916b2b50d1c958f9ed1c008623065b8a?s=128

MOSDROID

September 13, 2019
Tweet

Transcript

  1. Куликов Никита Разработчик Notify За пару часов* CI/CD для маленькой

    команды с эмулятором и Docker’ом 13.09.2019
  2. Verify Push ВК Одноклассники Звонок (CallUI, IVR, Flash) IPC и

    другое
  3. Notify Система используется в крупнейших проектах Mail.Ru:

  4. Почему CI? Время доставки билда Человеческий фактор Ускорение разработки

  5. Готовые решения Сложно модифицируются Индивидуальны

  6. План Подготавливаем Android SDK Упаковываем в Docker Запускаем эмулятор

  7. Подготавливаем Android SDK

  8. None
  9. None
  10. https://developer.android.com/studio/command-line

  11. None
  12. None
  13. None
  14. None
  15. None
  16. None
  17. None
  18. None
  19. None
  20. None
  21. None
  22. None
  23. План Подготавливаем Android SDK Упаковываем в Docker Запускаем эмулятор

  24. Упаковываем в Docker

  25. Почему Docker? Bus factor Это легко Переносимо Конфигурация В Git

  26. None
  27. None
  28. None
  29. None
  30. None
  31. None
  32. None
  33. None
  34. None
  35. None
  36. None
  37. None
  38. None
  39. None
  40. План Подготавливаем Android SDK Упаковываем в Docker Запускаем эмулятор

  41. Запускаем эмулятор

  42. Зачем эмулятор? Instrumentation Test UI Test

  43. None
  44. Эмуляторы медленные cmelchior/spanner JMH

  45. Эмуляторы медленные cmelchior/spanner JMH

  46. Сложно работают

  47. Docker Рядом Docker Внутри

  48. Docker Рядом Docker Внутри

  49. None
  50. https://developer.android.com/studio/command-line/avdmanager

  51. None
  52. None
  53. https://developer.android.com/studio/run/emulator-commandline

  54. None
  55. KVM: Protection rings

  56. KVM: Protection rings

  57. KVM: Protection rings

  58. KVM: Protection rings

  59. None
  60. Linux-Host VPS Docker Emulator Your App

  61. Linux-Host VPS Docker Emulator Your App

  62. Docker: Privileged Mode

  63. Docker: Privileged Mode

  64. Privileged Mode: GitLab

  65. None
  66. None
  67. None
  68. Варианты решений Использовать Ubuntu Alpha-сборки эмулятора

  69. План Подготавливаем Android SDK Упаковываем в Docker Запускаем эмулятор

  70. Бонус Первый

  71. https://androidstudio.googleblog.com/2019/05/emulator-ci-docker-scripts-for-linux.html

  72. None
  73. Клоним репозиторий

  74. Качаем emulator

  75. Качаем emulator

  76. Вырезаем ненужные части и адаптируем под себя

  77. Генерируем файлы

  78. Вырезаем ненужные части и адаптируем под себя

  79. Генерируем файлы

  80. None
  81. Бонус Второй

  82. Сила open-source

  83. Сила open-source

  84. Ссылки GitHub.com/LionZXY/MosDroid_CI •AvdManager: https://developer.andr oid.com/studio/command- line/avdmanager •Emulator Command Line: https://developer.android.com/s

    tudio/run/emulator-commandline •Emulator By Google: https://androidstudio.google blog.com/2019/05/emulator-ci- docker-scripts-for-linux.html
  85. Никита Куликов Разработчик MailRu t.me/lionzxy Рабочая: nikita.kulikov@corp.mail.ru Личный: nikita@kulikof.ru

  86. None