flutter_ci

0
7 месяцев назад
7 месяцев назад
README.md

Пример flutter CI

Для примера сборки flutter приложения описан файл. Он берет исходники понравившегося мне своей простотой приложения ToDo

GitVerse использует синтаксис, совместимый с GitLab CI

Общее описание пайплайна (для Аврора ОС)

  • name
    — название пайплайна, отображается в интерфейсе GitVerse.
  • on: push
    — запускает пайплайн при каждом
    git push
    в указанную ветку.
  • Ветка
    aurora
    — ветка, предназначенная для сборки под Аврора ОС.

Сборка под Аврора ОС — базовые настройки

  • jobs
    — список задач, которые будут выполнены.
  • build-aurora
    — идентификатор задачи (можно любое имя).
  • runs-on
    — указывает тип раннера. Здесь используется специальный образ
    ubuntu-psdk
    , поддерживающий PSDK Аврора ОС.
  • В отличие от Android, не используется контейнер с SDK, так как сборка требует специфичного окружения.

Клонирование репозитория

  • Ручное клонирование через HTTPS с использованием токена доступа.
  • Используется
    $ git clone
    , так как
    actions/checkout
    может не работать в кастомных окружениях.
  • ${{ gitverse.token }}
    — автоматически подставляемый токен.

Если используется docker runner, то зачастую будет работать:

Если же пайплайн находится отдельно (например, вы хотите собирать какую-то библиотеку для работы внутри вашего проекта), то можно использовать стандартные команды git:


Добавление платформы Аврора ОС

  • flutter-aurora
    — форк Flutter, адаптированный для Аврора ОС.
  • flutter-aurora create
    — инициализирует проект с поддержкой платформы Aurora.
  • --template=app
    — тип шаблона (app = обычное приложение, также можно создавать библиотеки и пакеты);
  • --org=ru.aurora
    — имя организации, в соответствии с требованиями, участвует в формировании названия пакета;
  • Удаляется тест-файл
    widget_test.dart
    , чтобы избежать конфликтов с шаблоном.

Установка зависимостей

  • Устанавливает все зависимости из
    pubspec.yaml
    .
  • Используется
    flutter-aurora
    , а не стандартный
    flutter
    .

Статический анализ кода

  • Проверяет код на ошибки и стилистические нарушения.
  • Флаг
    --no-fatal-infos
    игнорирует информационные сообщения (не ошибки), чтобы пайплайн не падал из-за предупреждений.

Тестирование приложения

  • Запускает юнит- и виджет-тесты.
  • Использует стандартный
    flutter test
    , так как тесты не зависят от платформы.

Сборка RPM-пакета

  • flutter-aurora build aurora --release
    — генерирует RPM-пакет для Аврора ОС.
  • find
    и
    cp
    — копируют итоговый
    .rpm
    в рабочую директорию.
  • ls -la
    — выводит список файлов для проверки успешности сборки.

Подпись пакета

  • Для установки приложения в Аврора ОС обязательна цифровая подпись.
  • Загружаются ключ и сертификат разработчика с официального портала.
  • psdk-chroot
    — утилита из PSDK для безопасной подписи в изолированной среде.

🔐 Важно: В реальном проекте ключи распологать в секретах!
Используйте

secrets
или зашифрованные ассеты. Это — демонстрация.


Публикация артефактов

Параметр

name
отвечает за имя целевого архива,
path
— путь к файлу или папке с артефактом,
retention-days
— срок «свежести» артефакта.

Последний параметр не рекомендуется завышать — быстро закончится место в вашем хранилище.