An open API service indexing awesome lists of open source software.

https://github.com/surfstudio/surf_flutter_ci_cd


https://github.com/surfstudio/surf_flutter_ci_cd

Last synced: 2 months ago
JSON representation

Awesome Lists containing this project

README

          

# Surf Flutter CI/CD
Surf Flutter CI/CD - это набор инструментов и руководств, которые помогают оптимизировать процесс непрерывной интеграции и непрерывной доставки для мобильных приложений, написанных на Flutter.
# Начало работы
Чтобы начать работу с Surf Flutter CI/CD, вам необходимо выполнить следующие шаги:
1. Добавить зависимость в pubspec.yaml.
```yaml
dev_dependencies:
surf_flutter_ci_cd:
git:
url: https://github.com/surfstudio/surf_flutter_ci_cd.git
```
2. В корне репозитория создать [cd.yaml](cd.yaml) файл и настроить его под свой проект. Этот файл будет содержать конфигурацию сборки и доставки вашего приложения.
3. В корне репозитория создать [secrets.yaml](secrets.yaml) файл и заполнить его данным для своего проекта. Этот файл будет содержать ваши секретные ключи и пароли, которые не должны быть доступны в открытом виде. Добавьте файл его в .gitignore, чтобы не пушить в ваш репозиторий.
# Использование пакета
1. Открыть терминал в корне проекта.
2. Выполнить команду в формате:\
`
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. Различные токены, ключи и пути до файлов.