Автор оригинала: Arpit Agarwal.
Анимировали это на компиляции и потраченное время разработчика.
Как мы использовали Jenkins для непрерывной интеграции и ежедневно сохранили час для всей команды.
Контекст и вызов
Технологическая команда работала в еженедельных спринтах при создании приложения Zomato так долго, как я могу вспомнить. Каждый день, около шести разработчиков в команде ждал, чтобы создать созданную сборку, загруженную для распределения, а затем доступен для скачивания. Один человек объединил весь код. Если они что-то пропустили, находка была болезненной задачей. Каждую неделю этот ручной процесс стоил нас более 20 часов рабочей силы. Довольно сумасшедший а?
Чтобы сэкономить время и ресурсы, нам нужно было оптимизировать этот болезненный процесс. Нам нужна система непрерывной интеграции (CI) для мониторинга вновь объединенного кода. Это позволит нам мгновенно проверить приложение, поскольку мы его разрабатываем. Мы могли бы избежать в зависимости от ручного усилия одного человека, чтобы объединить, построить и загружать приложение.
Решение
Мы поделились быстрым рисунком в нашей команде, чтобы объяснить эту настройку
Мы настроили систему CI, используя Дженкинс Отказ Эта система берет наш объединенный код и постоянно создает тестовые сборки от него. Это называется системой непрерывной интеграции (CI). Я представил это для команды автомобилей в GameLoft, и теперь это было мое время, чтобы проверить этот подход в зомато.
Как это работает
- Дженкинс постоянно контролирует репозитории Zomato IOS App Github для любых изменений.
- Всякий раз, когда есть изменение на GitHub, прикрепленный веб -ook срабатывает Jenkins работает на нашем сервере CI.
- После того, как WebHook срабатывает, Дженкинс вытягивает код от всех наших repos iOS и запускает скрипт сборки Fastlane для создания новой бета-сборки приложения. (FastLane — это другой инструмент, который помогает построить проекты Xcode через командную строку.)
- Завершенная сборка загружена на тестовый сервер и может быть загружено с URL.
- Наконец, Дженкинс запускает электронное письмо всем предварительному зараженным разработчикам, тестерам и другим заинтересованным сторонам, которым необходимо проверить новейшую бета-сборку приложения.
Система CI может отправлять оповещению всякий раз, когда коммит разбивает сборку
С Jenkins мы устранили хлопот компиляции и создания бета-приложения каждый раз, когда были сделаны большие изменения. Теперь автоматизированная система обрабатывает эту рутинную задачу. Когда сборка сборки, любой плохой коммит, который нарушает сборку, уведомляет нас сразу с помощью предупреждения.
В конце каждый день коммиты этого дня скомпилированы в краткое изложение сообщений Commit. Он служит отличным отчетом EOD для команды, и мы точно знаем, что было объединено в ночной выпуск. Интересно, что это также мотивирует команду написать описательные конфигурации сообщений, поскольку резюме делятся всей организации.
Отражение
Система CI — отличная практика, чтобы избежать ручной компиляции, обрабатывать ошибки и автоматизировать процессы для вашей команды разработки.
В качестве команды IOS и приложение со временем выросло, эта система CI стала более полезной каждый день в запястье нашей руке. С этим на месте мы даже автоматизируем задачи, такие как отправка всех новых строк для локализации и непрерывно принимая скриншоты наших основных потоков приложения.
Это был один из самых больших объектов, ориентированных на процесс, которые мы настроили, и она экономит нас много часов и головной боли! Я стремлюсь, чтобы система CI, установленная в любой из команд, с которыми я работаю в будущем.
Плавник.
Оригинал: «https://www.codementor.io/@arpitagarwal760/setting-up-an-automated-system-for-nightly-builds-hpl49ar5l»