От коммита до релиза: iOS-инфраструктура hh.ru
hurmavbatone 44 минуты назад Краткое содержание статьи От коммита до релиза: iOS-инфраструктура hh.ru Средний 9 мин 2K Блог компании hh.ru iOS * Разработка мобильных приложений * DevOps * Тестирование мобильных...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: hurmavbatone 44 минуты назад Краткое содержание статьи От коммита до релиза: iOS-инфраструктура hh. ru Средний 9 мин 2K Блог компании hh. ru iOS * Разработка мобильных приложений * DevOps * Тестирование мобильных приложений * Обзор Привет, Хабр!
Меня зовут Виталий, я шесть лет занимаюсь iOS-разработкой, из них два года работаю в платформенной команде hh. Сегодня я хочу рассказать о пути каждого нашего коммита: от подготовки окружения и генерации проекта на машине разработчика до момента, когда изменения становятся доступны пользователям приложения. Разберём, как пайплайн определяет затронутые сервисы, переиспользует собранный проект в разных тестах, проводит статический анализ и возвращает результаты в PR.
Технические детали
Отдельно остановимся на UI-тестах, проследим, как происходит проверка сборок и проекты доходят до релиза. В конце расскажу, какие метрики помогают оценивать скорость поставки и когда можно сокращать повторы тестов. С чем мы работаемДля начала введу вас в контекст: всего у нас в работе два приложения (для соискателей и работодателей), Пять региональных версий (отличаются дизайном и текстами), 160 фича-модулей.
В команде 30 iOS-разработчиков. Релизы выходят раз в неделю, а за сутки на CI проходит до 55 прогонов. При такой нагрузке скорость и стабильность инфраструктуры влияют на работу всей команды.
Локальное началоВсё начинается с момента, когда мы настраиваем окружение для коммитов разработчика. Для этого используются два скрипта. sh полностью настраивает окружение с нуля, в том числе готовит кэш для ускорения последующих запусков и генерирует проектup.
Отраслевые последствия
sh используется в повседневной работе для генерации проектаВ процессе генерируются локализации и аналитика (Кстати, о том, как мы генерируем код для отправки событий и синхронизируем аналитику на iOS и Android, коллега Андрей Максимкин подробно рассказал в отдельной статье) — события аналитики мы не пишем вручную. У нас многомодульная архитектура. Для управления модулями и генерации проекта из манифестов мы используем Tuist.
После этого разработчик занимается задачей: например, меняет цвет кнопки, добавляет текст и аналитику. Затем делает коммит и отправляет его в репозиторий. окружение и проект готовит скрипт — руками ничего не собираетсяКоммит попадает в Forgejo.
Это Git-хостинг, похожий по возможностям на GitLab и GitHub: в нём есть pull request, хуки и разграничение прав. Но его можно развернуть на собственном оборудовании, поэтому работа репозитория не зависит от внешнего сервиса и его политик. Дальше разработчик может вручную запустить свою ветку на CI/CD или создать pull request.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.






