Size: a a a

2021 May 16

C

Combot in DevOps
Алена Швед has been banned! Reason: CAS ban.
источник

rd

rus dacent in DevOps
источник

DS

Dmitry Sergeev in DevOps
что написать в on: - это твоя меньшая из проблем. В доках есть все варианты того, что там можно написать https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#on
Основная твоя проблема, это то что testflight не имеет методов API для заливки туда билда.

Можно поискать в доках и удивиться:
https://developer.apple.com/documentation/appstoreconnectapi/apps
https://developer.apple.com/documentation/appstoreconnectapi/builds

Но есть fastlane, который умеет заливать билды в testflight и делает это не через API. Для заливки в testflight требуется логин и пароль от appleId + живая сессия +appleid specific password, иначе надо будет пройти двух факторную авторизацию например через sms. Сессию тоже можно создать и сохранить в переменной среды FASTLANE_SESSION (https://docs.fastlane.tools/best-practices/continuous-integration/). Но эта сессия протухает, примерно через месяц, и ее каждый раз надо вручную пересоздавать проходя двух факторку.
+ Сессия скорее всего привязывается к ип адресу. А в случае github actions при каждой сборке поднимается отдельная виртуалочка и у нее скорее всего внешний ип адрес будет другим. То есть сессия каждый раз скорее всего будет сбрасываться и надо будет проходить двух факторку вручную. Но можно использовать self-hosted runner, тогда останется проблема с протуханием сессии каждые 30 дней.

Я сильно костылил чтобы автоматизировать процесс прохождения двух факторки. И не парится о протухших сессиях или новых раннерах
источник

A

Andrey in DevOps
Да я читал доку но не понял этого принципа как затриггерить не В какую ветку а  ИЗ какой ветки 😏
источник

DS

Dmitry Sergeev in DevOps
on.<push|pull_request>.<branches|tags>
источник

DS

Dmitry Sergeev in DevOps
Если чего-то в доках нет, значит этого функционала нет
источник

DS

Dmitry Sergeev in DevOps
то есть остается только из гита это проверять уже когда билд был зыпущен. Смотреть с какой ветки был merge и в зависимости от этого заливать или не заливать в testflight. Не уверен что можно красиво в гите найти ветку с которой был мерж, она ведь может быть удалена совсем. Наверное тут только парсить комментарий, который оставляет gtihub после мержа в мастер из PR
источник

A

Andrey in DevOps
Спасибо большое! То есть в принципе советуешь пока не мучить гитхаб а сделать все через Jenkins+Fastlane?
источник

DS

Dmitry Sergeev in DevOps
в jenkins тоже нет ничего готового, чтобы тригерить развертывание в зависимости от того, с какой ветки был мерж в мастер. Такие же костыли будут
источник

DS

Dmitry Sergeev in DevOps
fastlane пригодится в обоих случаях скорее всего
источник

A

Andrey in DevOps
Извини что оч общий вопрос. Как тогда лучше сделать? Надо и тестфлайт и в итоге аппстор)
источник

AS

Aleksandr Strogonov in DevOps
Почему нельзя использовать апи ключи, зачем использовать сессию?
источник

DS

Dmitry Sergeev in DevOps
testflight и appstore это щас одно и тоже. Один API. То есть testflight это сейчас просто вкладочка в приложеньки в  appstore.
Заливается все в testflight. Потом вроде как вручную надо одну из готовых сборок при создании релиза
источник

DS

Dmitry Sergeev in DevOps
Подскажи какой метод из API можно использовать для заливки билда в appstore/testflight? Я таких не нашел, разрабы fastlane тоже не нашли по всей видимости
источник

DS

Dmitry Sergeev in DevOps
Вот дока https://developer.apple.com/documentation/appstoreconnectapi/apps по API для работы с приложениями
Вот по работе с билдами https://developer.apple.com/documentation/appstoreconnectapi/builds
источник

AS

Aleksandr Strogonov in DevOps
lane :get_app_store_connect_api_key do
   ensure_env_vars(
     env_vars: [
       'APP_STORE_CONNECT_API_KEY_AIGL',
       'APP_STORE_KEY_ID_AIGL',
       'APP_STORE_ISSUER_ID_AIGL'
     ]
   )
   app_store_connect_api_key(
     key_id: "#{ENV["APP_STORE_KEY_ID_AIGL"]}",
     issuer_id: "#{ENV["APP_STORE_ISSUER_ID_AIGL"]}",
     key_content: "#{ENV["APP_STORE_CONNECT_API_KEY_AIGL"]}",
     in_house: false,
   )
 end


    upload_to_testflight( skip_waiting_for_build_processing: true)
источник

AS

Aleksandr Strogonov in DevOps
это выдержки из фастфайла
источник

DS

Dmitry Sergeev in DevOps
Так это понятно, но это не API. Просто они нашли куда фигачить запросы, чтобы залить билд.
И эти методы требуют двух факторку, если сессии нет.
Сделай 'rm -rf ~/.fastlane`  и попробуй
источник

DS

Dmitry Sergeev in DevOps
Тебе же сам fastlane попросит пройти двух факторку в интерактивном вводе надо будет ввести код
источник

DS

Dmitry Sergeev in DevOps
источник