Flutter CI/CD 配置指南:使用 GitHub Actions 实现自动化部署
引言
如今移动应用迭代速度越来越快,持续集成与持续部署(CI/CD)早就不再是'加分项',而是保障开发效率和代码质量的标准实践。对于 Flutter 开发者来说,如果还停留在手动打包、测试、发布的老路上,不仅浪费时间,也容易出错。
好在 GitHub 官方提供的自动化工具 GitHub Actions,为我们搭建 Flutter 项目的 CI/CD 流水线提供了强大又灵活的支持。今天,我们就来一起完成从零开始配置一条完整的自动化部署流程,让你的代码在提交后自动完成检查、测试、构建,甚至发布。
理解核心概念
GitHub Actions 是如何工作的?
简单来说,GitHub Actions 采用事件驱动模式:当特定事件(比如推送代码、创建 PR)发生时,它会执行你在仓库中预设的自动化流程。这些流程通过 YAML 文件定义,主要包含几个核心概念:
- Workflow(工作流程):一个完整的自动化流程,对应
.github/workflows/目录下的一个 YAML 文件。 - Event(事件):触发工作流程运行的动作,例如
push、pull_request、release等。 - Job(作业):工作流程中的一个执行单元,包含一系列步骤,在同一个 Runner 上运行。
- Step(步骤):作业内的具体任务,可以是执行一条 shell 命令,或调用一个预定义的动作。
- Runner(运行器):执行作业的服务器,可以使用 GitHub 托管的,也可以自己搭建。
设计 Flutter 的 CI/CD 流水线
一条健壮的 Flutter CI/CD 流水线通常会包含以下几个阶段,我们可以根据项目需求进行增减:
- 代码质量检查:运行静态分析和代码格式化检查。
- 依赖管理:获取项目依赖,并利用缓存加速后续流程。
- 构建验证:尝试编译不同平台(Android/iOS/Web)的产物,确保代码可构建。
- 自动化测试:执行单元测试和集成测试,生成测试覆盖率报告。
- 产物构建:生成用于发布的应用包(APK/IPA/Web 资源)。
- 部署发布:将构建产物自动上传到应用商店、测试平台或静态网站。
实战:编写 CI/CD 工作流
基础工作流配置文件
让我们先来看一个完整的 flutter-ci-cd.yml 示例,你可以将它保存到项目的 .github/workflows/ 目录下:
name: Flutter CI/CD Pipeline
on:
push:
branches: [ main, develop ]
tags: [ 'v*' ]
pull_request:
branches: [ main ]

