Comments 9
Привет!
Спасибо за статью, кажется, вы сэкономили нам время на исследование Cilicon и tart, потому что тоже уже очень хотим двигаться в эту сторону.
Интересно было бы узнать, как вы совмещаете Ruby и Swift? У нас сейчас вся инфра в основном на Ruby (Fastlane и куча логики вокруг него), но хотим подумать в сторону Swift, чтобы большая часть инфры была на ней. Может уже смотрели в эту сторону, были ли с этим у вас какие-то сложности/интересные моменты?
Руби мы используем только для фастлейна, по сути. И долю фастлейна мы в Пицце постепенно сокращаем, прям намеренно:
Сборки и тесты мы в этом году начали запускать напрямую через
xcodebuild
, там всё просто оказалось. Хотя не без приколов — в Xcode 14.3 в командеtest-withoud-building
отломали флаг-testPlan
, пришлось учиться работать напрямую с.xctestrun
. Но там тоже ничего сложного.Из фастлейна остались только запуски
match
,deliver
иpilot
, хотелось бы и от них отказаться. В качестве замены мы присматриваемся к swiftlane или App Store Connect Swift SDK, но ни то ни другое пока не потрогали.Часть тулинга пишем сами на свифте, что-то даже в опенсурц выкладываем. Готовой странички со ссылками на все пакеты нет, но в нашем канале постов 5 подряд есть про это.
Часть тулинга пишем на баше вместе с ChatGTP, очень довольны. Она конечно иногда ересь несет, но по итогу скрипты собираем.
Из интересного — абсолютно всё. Каждая задача по инфре для меня как для iOS-разраба — новая, сложная, непонятная. Но после каждой закрытой задачки ощущение, что преисполнился.
мы уже давно делаем альтернативу fastlane, но используя обычные shell команды https://github.com/codemagic-ci-cd/cli-tools Очень просто в обучении и переносе между локальной средой и любым CI/CD провайдером
В качестве runtime выбран Python, потому что по-умолчанию присутсвует на всех macOS компьютерах и нет таких проблем совместимости как с Ruby
(удалено)
Если знаете как ускорить резолвинг SPM-зависимостей
пробовали Tuist? мы здесь писали и результат на тестовых проектах просто офигенный
или как устанавливать ченжлонг для сборок в тестфлайте без ожидания их процессинга — напишите, пожалуйста, в комментариях.
если я правильно понял, то Codemagic делает это после того как основной билд закончился. В результате можно запускать новые билды и они не будут ждать в очереди и скорость TestFlight / App Store не влияет на количество потраченных минут.
И кстати типичная ошибка считать затраты поминутно как будто вы билдите 24x7. Для таких команд всегда надо брать план с фиксированной стоимостью (у нас 3 M2 машины с анлим минутами стоят $4k в год, можете посчитать что выгоднее со всеми затратами на обновление Xcode / Ruby версий) да простите меня за наглую рекламу :)
пробовали Tuist? мы здесь писали и результат на тестовых проектах просто офигенный
Ага, на нем и сидим. А `tuist cache` прям резолвинг ускоряет? Мы попробуем, спасибо. Но вообще хочется иметь минимальную завязку на него, чтобы _если вдруг что_ можно было дальше без него продолжить работать.
если я правильно понял, то Codemagic делает это после того как основной билд закончился
Да, у нас так же. Но фастлейн ждет завершения процессинга загруженной сборки и обновляет ченжлог только после. Вот это хочется развернуть, но мы пока ещё не изучали можно ли.
И кстати типичная ошибка считать затраты поминутно как будто вы билдите 24x7
Тут не понял. Я из апи гитхаба забрал количество минут, которое тратилось на джобы, и помножил на стоимость минуты. Это некорректно?
Тут не понял. Я из апи гитхаба забрал количество минут, которое тратилось на джобы, и помножил на стоимость минуты. Это некорректно?
после определенного количества минут, поминутный план (pay-as-you-go) будет всегда дороже чем план с фиксированной стоимостью. Поэтому если идет активная разработка и активное использование CI/CD, то всегда надо выбирать фиксированный план.
И я про то, что в зависимости от вашего сценария использования, любой провайдер предлагает разные тарифы. Умножить количество минут на стоимость - это корректно, но не показывает, сколько вы можете платить на самом деле.
Думаю тоже затащить Cilicon. Хочу уточнить нормально ли гоняются снэпшот тесты на образах с xcode?
Как Додо Пицца доставляет свежий код: история мобильного CI для iOS