https://github.com/surfstudio/surf_flutter_ci_cd
https://github.com/surfstudio/surf_flutter_ci_cd
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/surfstudio/surf_flutter_ci_cd
- Owner: surfstudio
- Created: 2023-02-23T13:01:50.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-27T12:04:58.000Z (about 2 years ago)
- Last Synced: 2025-04-01T12:50:45.842Z (7 months ago)
- Language: Dart
- Size: 119 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
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. Различные токены, ключи и пути до файлов.