返回

科技赋能:利用 Github Actions 构建和发布 Flutter 应用

Android

借助 GitHub Actions 实现 Flutter 应用的自动化构建和发布

前言

在当今瞬息万变的技术世界中,软件开发领域对敏捷性和高效性的要求变得至关重要。为了满足这种需求,GitHub Actions 应运而生,它提供了一个功能强大的平台,使开发者能够轻松自动化代码构建、测试和部署,从而大幅提升开发效率和质量。

Flutter 与 GitHub Actions:完美融合

Flutter 作为一种跨平台开发框架,以其快速开发和卓越性能而闻名。然而,随着项目规模的不断扩大,构建和发布 Flutter 应用的过程变得更加繁琐和耗时。因此,充分利用 GitHub Actions 的强大功能,实现 Flutter 应用的自动化构建和发布,无疑是一个理想的解决方案。

自动化构建和发布的步骤

  1. 创建 GitHub Actions 文件夹

在 GitHub 仓库中,创建一个名为“GitHub Actions”的文件夹,并在其中创建 YAML 文件“main.yaml”。此文件用于定义自动化构建和发布的工作流程。

  1. YAML 文件配置
name: Flutter App CI/CD

on:
  push:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Set up Flutter
        uses: subosito/flutter-action@v1
        with:
          flutter-version: '2.10.4'

      - name: Install dependencies
        run: flutter pub get

      - name: Build APK
        run: flutter build apk

      - name: Deploy to Firebase
        uses: w9jds/firebase-app-distribution@v1.2.1
        with:
          serviceAccountKey: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_KEY }}
          firebaseProjectId: ${{ secrets.FIREBASE_PROJECT_ID }}
          app: my-flutter-app

      - name: Publish to Play Store
        uses: r0adkll/upload-google-play@v1.1.0
        with:
          serviceAccountKey: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_KEY }}
          packageName: com.example.my_flutter_app
          apk: build/app/outputs/apk/release/app-release.apk
  1. 触发工作流

YAML 文件中配置的触发条件决定了工作流的触发时机。在本例中,当代码推送到 master 分支时,构建和发布工作流将被触发。

  1. 构建作业

构建作业指定了作业的运行环境和执行步骤。其中包括安装依赖项、构建 APK 以及设置 Flutter 环境。

  1. 部署和发布

利用 Firebase App Distribution 和 Google Play Upload 等 GitHub Actions,实现了应用的部署和发布。

优势

自动化构建和发布 Flutter 应用具有以下优势:

  • 提升开发效率: 自动化执行重复性任务,节省宝贵时间。
  • 提高发布质量: 确保发布过程的稳定性和可靠性。
  • 提升团队协作: 简化协作并减少错误的可能性。
  • 增强竞争力: 通过更快的发布速度和更高的质量,在竞争中脱颖而出。

常见问题解答

  1. 如何设置 GitHub Actions?
  • 创建一个 GitHub Actions 文件夹,并添加一个 YAML 文件来定义工作流。
  • 配置触发条件、构建作业和部署步骤。
  1. 如何部署到 Firebase?
  • 使用 w9jds/firebase-app-distribution GitHub Action。
  • 提供 Firebase 服务帐号密钥和项目 ID。
  1. 如何发布到 Google Play?
  • 使用 r0adkll/upload-google-play GitHub Action。
  • 提供 Google Play 服务帐号密钥、包名和 APK 文件。
  1. 如何自定义工作流?
  • 根据项目需要,修改 YAML 文件以添加或删除步骤。
  • 集成其他 GitHub Actions 来扩展功能。
  1. 如何获取支持?
  • GitHub Actions 社区论坛
  • GitHub 官方文档

结论

拥抱 GitHub Actions 的自动化构建和发布功能,充分利用 Flutter 应用开发的优势。通过自动化重复性任务,提升开发效率、发布质量和团队协作。在竞争日益激烈的技术环境中,采用先进的开发工具和技术将助力企业和个人脱颖而出,交付更高质量的软件。