Flutter — сборка и выпуск APK с помощью GitHub Actions

Опубликовано: 1 Сентября, 2022

Github Actions — это инструмент Github, который позволяет пользователям создавать конвейеры CI/CD непосредственно в проекте Github вместо перехода на сторонний веб-сайт. Это очень удобно помогает нам в разработке, тестировании и выпуске нашего проекта. В этой статье мы собираемся построить рабочий процесс для нашего проекта флаттера. Сначала мы создадим проект, используя рабочий процесс, а затем выпустим APK в разделе артефактов Github Actions.

Prerequisites: Basic understanding of Github Actions and writing Workflows using Github Actions. 

Итак, теперь, когда у нас есть общее представление о том, как написать рабочий процесс, давайте сначала создадим проект Github во флаттере и создадим файл .yml с именем flutter-workflow.yml в каталоге .github/workflows в корневом каталоге проекта. Начните писать код в этом файле.

name: Flutter CI

on:
  push:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: actions/setup-java@v1
        with:
          java-version: "12.x"
      - uses: subosito/flutter-action@v1
        with:
          channel: "beta"
      - run: flutter pub get
      - run: flutter format --set-exit-if-changed .
      - run: flutter analyze .
      - run: flutter build apk
      - uses: actions/upload-artifact@v1
        with:
          name: release-apk
          path: build/app/outputs/apk/release/app-release.apk

Прежде всего, мы даем имя нашему рабочему процессу, здесь имя — Flutter CI. Каждый рабочий процесс должен иметь блок « on» , который дает команду запускать рабочий процесс, как только будет достигнуто действие, определенное в этом блоке. В нашем случае мы указали, что всякий раз, когда в основной ветке будет новый толчок , рабочий процесс будет запущен. Задания являются важной частью рабочего процесса, в котором будут содержаться сведения о задачах, которые необходимо выполнить. Здесь мы указали только одно задание, которое является сборкой. Каждая сборка должна пройти настройку виртуальной среды, которая указана в разделе запуска . Здесь мы используем ubuntu-latest, размещенный на Github.

Теперь идет раздел шагов , в котором мы определяем шаги, которые будут выполняться при запуске рабочего процесса. Для создания нашего кода мы должны сначала выполнить проверку в нашем репозитории, написав action/checkout@v1.

Следующим шагом будет настройка java с помощью action/setup-java@v1 . Когда мы настраиваем java, нам также нужно настроить флаттер, чтобы создать наше приложение. Следовательно, мы определяем subosito/flutter-action@v1. Когда мы настроили java и флаттер, нам нужно получить зависимости флаттера, чтобы построить проект. Итак, мы определяем флаттер-паб. Как только мы получим зависимости, мы форматируем наш код, формат флаттера —set-exit-if-changed. флаттер анализировать. запускает статический анализ нашего кода.

Теперь наступает основная часть сборки apk и загрузки APK в раздел артефактов. Для этого мы говорим flutter build apk и загружаем APK с помощью action/upload-artifact@v1 из каталога build/app/outputs/apk/release/app-release.apk в раздел Artifacts нашего проекта. После написания кода зафиксируйте его, отправив сообщение, и перейдите на вкладку «Действия», чтобы увидеть, как выполняется рабочий процесс.

После завершения выполняемой сборки снова щелкните вкладку «Действия», а затем щелкните последний рабочий процесс, который только что завершился. Прокрутите страницу вниз, и вы увидите apk с именем release-apk в разделе артефактов.

Таким образом, мы создали рабочий процесс, который позволит вам создавать артефакты каждый раз, когда в основной кодовой базе, т. е. в основной ветке, происходит новый толчок, и загружать только что собранный APK в раздел артефактов Github Actions.