flutter_ci
README.md
Пример flutter CI
Для примера сборки flutter приложения описан файл. Он берет исходники понравившегося мне своей простотой приложения ToDo
GitVerse использует синтаксис, совместимый с GitLab CI
Общее описание пайплайна (для Аврора ОС)
— название пайплайна, отображается в интерфейсе GitVerse.name— запускает пайплайн при каждомon: pushв указанную ветку.git push- Ветка
— ветка, предназначенная для сборки под Аврора ОС.aurora
Сборка под Аврора ОС — базовые настройки
— список задач, которые будут выполнены.jobs— идентификатор задачи (можно любое имя).build-aurora— указывает тип раннера. Здесь используется специальный образruns-on, поддерживающий PSDK Аврора ОС.ubuntu-psdk- В отличие от Android, не используется контейнер с SDK, так как сборка требует специфичного окружения.
Клонирование репозитория
- Ручное клонирование через HTTPS с использованием токена доступа.
- Используется
, так как$ git cloneможет не работать в кастомных окружениях.actions/checkout — автоматически подставляемый токен.${{ gitverse.token }}
Если используется docker runner, то зачастую будет работать:
Если же пайплайн находится отдельно (например, вы хотите собирать какую-то библиотеку для работы внутри вашего проекта), то можно использовать стандартные команды git:
Добавление платформы Аврора ОС
— форк Flutter, адаптированный для Аврора ОС.flutter-aurora— инициализирует проект с поддержкой платформы Aurora.flutter-aurora create— тип шаблона (app = обычное приложение, также можно создавать библиотеки и пакеты);--template=app— имя организации, в соответствии с требованиями, участвует в формировании названия пакета;--org=ru.aurora- Удаляется тест-файл
, чтобы избежать конфликтов с шаблоном.widget_test.dart
Установка зависимостей
- Устанавливает все зависимости из
.pubspec.yaml - Используется
, а не стандартныйflutter-aurora.flutter
Статический анализ кода
- Проверяет код на ошибки и стилистические нарушения.
- Флаг
игнорирует информационные сообщения (не ошибки), чтобы пайплайн не падал из-за предупреждений.--no-fatal-infos
Тестирование приложения
- Запускает юнит- и виджет-тесты.
- Использует стандартный
, так как тесты не зависят от платформы.flutter test
Сборка RPM-пакета
— генерирует RPM-пакет для Аврора ОС.flutter-aurora build aurora --releaseиfind— копируют итоговыйcpв рабочую директорию..rpm— выводит список файлов для проверки успешности сборки.ls -la
Подпись пакета
- Для установки приложения в Аврора ОС обязательна цифровая подпись.
- Загружаются ключ и сертификат разработчика с официального портала.
— утилита из PSDK для безопасной подписи в изолированной среде.psdk-chroot
🔐 Важно: В реальном проекте ключи распологать в секретах!
Используйтеили зашифрованные ассеты. Это — демонстрация.secrets
Публикация артефактов
Параметр отвечает за имя целевого архива, name — путь к файлу или папке с артефактом, path — срок «свежести» артефакта.retention-days
Последний параметр не рекомендуется завышать — быстро закончится место в вашем хранилище.