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

Automating mobile project release cycle

Automating mobile project release cycle

25.01.17, Lviv, Sigma Software,

Andrey Moskvin

January 25, 2017
Tweet

More Decks by Andrey Moskvin

Other Decks in Programming

Transcript

  1. Berk0ld Автоматизация • Запуск тестов 4 • Сборка артефактов •

    Создание/обновление документации & changelog’а • Уведомления
  2. Berk0ld Цели • Документации и changelog актуализированы под версию •

    Выпуск версии встроен в процесс разработки • Выпуск версии автоматизирован • Версия готова выпускается если она прошла все проверки 6 • Доступ к latest версии проекта, до релиза
  3. Berk0ld Travis 9 • Низкая стоимость поддержки • CI в

    облаке • Простота конфигурации
  4. Berk0ld Fastlane Tips & Tricks • Каждый lane выполняет строго

    определенную работу ничего не знает о других lane’ах. • Есть lane - агрегаторы, которые запускают другие lane и
 обрабатывают результаты. • Каждый lane не зависит от другого и выполняет строго определенную работу. 11 • Для визуализации рекомендую использовать UI.message, UI.error и т.д. • У lane есть контекст в котором находятся shared values, такие как GitHub API token и т.д.
  5. Berk0ld GitHub Releases API Реализации в виде lane’ов: • Создание

    релиза • Редактирование релиза • Получение списка релизов • Добавление артефактов к релизу • Удаление артефактов у релиза 13
  6. Berk0ld Проблемы Jazzy очень нестабилен :( “Разогрев” симулятора для того

    чтобы избежать мигающих билдов. 20 Travis останавливает job’у, если в лог ничего не пишется 
 более 15 минут Поддержка Swift 2.2(Xcode 7) и Swift 2.3(Xcode 8).
  7. Berk0ld Результаты 21 Было:
 
 ~1 час на то чтобы

    сделать полный релиз проекта. Стало: ~ 1-2 минуты на то чтобы сделать релиз.
  8. Berk0ld Ссылки Making Continuous Integration More Interesting and Live Apple

    Generic Versioning Tool Automating CocoaPods deployments Bitrise CI (Travis for Mobile Projects) Fastlane for Distributing Private Frameworks Semantic Versioning GitHub Changelog Generator "Pre-heating" iOS simulator Jazzy Fastlane Advanced 22