Surf Flutter CI/CD - это набор инструментов и руководств, которые помогают оптимизировать процесс непрерывной интеграции и непрерывной доставки для мобильных приложений, написанных на Flutter.
Чтобы начать работу с Surf Flutter CI/CD, вам необходимо выполнить следующие шаги:
- Добавить зависимость в pubspec.yaml.
dev_dependencies:
surf_flutter_ci_cd:
git:
url: https://github.com/surfstudio/surf_flutter_ci_cd.git
- В корне репозитория создать cd.yaml файл и настроить его под свой проект. Этот файл будет содержать конфигурацию сборки и доставки вашего приложения.
- В корне репозитория создать secrets.yaml файл и заполнить его данным для своего проекта. Этот файл будет содержать ваши секретные ключи и пароли, которые не должны быть доступны в открытом виде. Добавьте файл его в .gitignore, чтобы не пушить в ваш репозиторий.
- Открыть терминал в корне проекта.
- Выполнить команду в формате:
fvm flutter pub run surf_flutter_ci_cd [тип] --env=[окружение] --proj=[проект] --target=[платформа] --deploy-to=[сервис для доставки]
, где:
[тип]
- build(сборка), deploy(деплой), full(сборка и деплой);
[окружение]
- описанное в cd.yaml;
[проект]
- описанный в cd.yaml;
[платформа]
- android, ios;
[сервис для доставки]
- fb(Firebase, поддерживается Android и iOS), tf(Testflight - только iOS), gp(Google Play Console internal testing - только Android);
Для --target=ios всегда собирается ipa.
Для --target=android и --deploy-to=fb всегда собирается apk.
Для --target=android и --deploy-to=gp всегда собирается aab.
Все команды выполняются с помощью пакета process_run и создания экземпляра shell, который в свою очередь представляет из себя оболочку терминала Shell. С помощью ShellEnvironment создаются переменные окружения. В переменные окружения добавляется вся необходимая информация для работы fastlane. Различные токены, ключи и пути до файлов.