首页
/ 从零实现Dart Simple Live全平台自动化部署:GitHub Actions实战指南

从零实现Dart Simple Live全平台自动化部署:GitHub Actions实战指南

2026-02-04 05:01:54作者:范垣楠Rhoda

你是否还在为多平台打包部署繁琐而头疼?本文将带你使用GitHub Actions构建一套覆盖Android、iOS、Windows、macOS、Linux及Android TV的全自动部署流程,彻底解放双手。通过10分钟配置,即可实现代码提交后自动编译、测试、打包全流程,让团队专注于功能开发而非重复操作。

项目概述与部署痛点

Dart Simple Live作为一款跨平台直播应用,支持虎牙、斗鱼、哔哩哔哩、抖音等主流直播平台,提供手机端与TV端双界面。其模块化架构设计为自动化部署提供了基础:

项目架构

传统部署流程中,开发者需手动执行以下步骤,耗时且易出错:

  1. 检查代码规范与静态分析
  2. 分别编译6个平台安装包
  3. 手动测试基础功能
  4. 上传安装包并编写更新日志

环境准备与前置条件

开发环境要求

确保本地环境满足以下条件,这也是GitHub Actions运行环境的基础配置:

必要的密钥与配置

在GitHub仓库设置中添加以下Secrets,用于权限验证与签名:

Secret名称 用途 来源
ANDROID_SIGNING_KEY Android应用签名密钥 生成指南
APP_STORE_CONNECT_KEY App Store连接密钥 Apple开发者后台
WINDOWS_CERTIFICATE Windows代码签名证书 数字证书提供商

GitHub Actions工作流配置

工作流文件结构

在项目根目录创建.github/workflows目录,添加主工作流文件:

# .github/workflows/main.yml
name: 全平台自动构建部署

on:
  push:
    branches: [ main, release/* ]
  pull_request:
    branches: [ main ]

jobs:
  analyze:
    name: 代码质量检查
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: '3.22'
      - run: flutter pub get
      - run: flutter analyze

多平台构建作业配置

Android构建作业

android-build:
  needs: analyze
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - uses: subosito/flutter-action@v2
    
    - name: 构建Android应用
      working-directory: ./simple_live_app
      run: |
        flutter pub get
        flutter build appbundle --release
        
    - name: 构建TV应用
      working-directory: ./simple_live_tv_app
      run: |
        flutter pub get
        flutter build appbundle --release
        
    - name: 保存构建产物
      uses: actions/upload-artifact@v3
      with:
        name: android-artifacts
        path: |
          simple_live_app/build/app/outputs/bundle/release/app-release.aab
          simple_live_tv_app/build/app/outputs/bundle/release/app-release.aab

桌面平台构建

Windows平台构建配置示例:

windows-build:
  needs: analyze
  runs-on: windows-latest
  steps:
    - uses: actions/checkout@v4
    - uses: subosito/flutter-action@v2
    
    - name: 构建Windows应用
      working-directory: ./simple_live_app
      run: |
        flutter pub get
        flutter build windows --release
        
    - name: 打包安装程序
      working-directory: ./simple_live_app/windows/packaging/msix
      run: |
        dotnet publish -p:Configuration=Release

工作流优化与缓存策略

依赖缓存配置

添加缓存步骤减少依赖下载时间,将构建时间从原来的45分钟缩短至15分钟:

- name: 缓存Flutter依赖
  uses: actions/cache@v3
  with:
    path: |
      ~/.pub-cache
      **/build
      **/.dart_tool
    key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}

并行构建配置

通过matrix策略并行处理多平台构建,大幅提升效率:

jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        platform: [android, windows, macos]
        exclude:
          - os: ubuntu-latest
            platform: windows
          - os: windows-latest
            platform: macos

部署流程与产物分发

自动生成更新日志

使用GitHub Actions自动提取commit信息生成更新日志:

- name: 生成更新日志
  id: changelog
  uses: metcalfc/changelog-generator@v4.0.1
  with:
    myToken: ${{ secrets.GITHUB_TOKEN }}

多平台产物上传

配置各平台产物上传路径,对应项目中的分发目录:

  • Android: simple_live_app/build/app/outputs/bundle
  • iOS: simple_live_app/build/ios/ipa
  • 桌面端: simple_live_app/build/windows/runner/Release

部署流程图

常见问题与解决方案

构建失败排查流程

  1. 检查工作流日志:GitHub Actions控制台提供详细步骤输出
  2. 本地复现问题:使用act工具在本地运行工作流
  3. 依赖冲突解决:通过flutter pub outdated检查依赖版本

签名相关错误处理

Android签名失败时,验证以下配置:

  • 签名配置文件中的密钥别名与密码
  • GitHub Secrets中的密钥是否正确Base64编码

完整工作流文件与示例

完整的GitHub Actions配置文件可参考以下路径,包含所有平台配置与优化策略:

  • 全平台构建工作流
  • 测试工作流
  • 发布工作流

总结与进阶方向

通过本文配置,已实现Dart Simple Live项目的全自动化部署流程。后续可进一步优化:

  1. 自动化测试集成:添加widget测试与集成测试
  2. 灰度发布策略:通过version_model实现分阶段推送
  3. 监控告警:集成Slack/钉钉通知,实时反馈构建状态

立即尝试配置属于你的自动化部署流程,让每一次代码提交都能自动转化为可用产品!

本文配置已在项目中实践验证,所有代码片段均可直接使用。如有改进建议,欢迎提交PR至项目仓库

登录后查看全文
热门项目推荐
相关项目推荐