阅读量:0
在 Debian 上配置 Flutter 持续集成
一 方案总览
- 在 Debian 环境中,常见的 CI 工具有:GitHub Actions(托管)、GitLab CI/CD(托管/自托管)、Jenkins(自托管)。
- 典型流程包含:拉取代码 → 安装 Flutter SDK → 安装依赖 → 运行测试 → 构建产物(APK/App Bundle/Web) → 归档与报告。
- 若使用自托管 Runner(如 GitLab Runner 或 Jenkins Agent),需先在 Debian 上安装与注册 Runner,再执行上述流程。
二 方案一 GitHub Actions 托管 CI
- 在项目根目录创建文件:.github/workflows/flutter_ci.yml
- 示例工作流(可扩展为 Web/覆盖率/产物上传):
name: Flutter CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true
- name: Install dependencies
run: flutter pub get
- name: Analyze
run: flutter analyze --no-fatal-infos
- name: Run unit/widget tests
run: flutter test --coverage
- name: Build APK
run: flutter build apk --release
- name: Build App Bundle
run: flutter build appbundle --release
- name: Upload coverage
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
- 说明:
- 使用 ubuntu-latest 运行器即可完成 Android 构建;如需 Web 构建,可添加步骤:flutter build web --release。
- 通过 Secrets 管理敏感信息(如 CODECOV_TOKEN)。
三 方案二 GitLab CI/CD 自托管 Runner
- 在 Debian 上安装并注册 Runner(示例为 Shell 执行器):
sudo apt update
sudo apt install -y gitlab-runner
sudo gitlab-runner register
# 按提示填写:GitLab 实例地址、项目注册令牌、Runner 描述、标签(如 flutter)、执行器(shell/docker)
sudo gitlab-runner start
- 在项目根目录创建 .gitlab-ci.yml
image: cirrusci/flutter:stable
stages:
- build
- test
variables:
FLUTTER_VERSION: "stable"
before_script:
- flutter doctor -v
build:
stage: build
script:
- flutter pub get
- flutter build apk --release
- flutter build appbundle --release
artifacts:
paths:
- build/app/outputs/flutter-apk/app-release.apk
- build/app/outputs/bundle/release/app-release.aab
expire_in: 30 days
test:
stage: test
script:
- flutter test --coverage
coverage: '/lines......: \d+\.\d+%/'
- 说明:
- 也可使用官方 flutter:stable 镜像或自托管镜像;通过 artifacts 归档 APK/AAB 供后续下载或部署。
四 方案三 Jenkins 自托管 CI
- 在 Debian 上安装 Jenkins:
sudo apt update
sudo apt install -y openjdk-11-jdk
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update
sudo apt install -y jenkins
sudo systemctl enable --now jenkins
- 在 Jenkins 中安装插件:Git、Pipeline、Docker(如需)、JUnit(测试报告)、Workspace Cleanup 等。
- 新建 Pipeline 任务,使用 Declarative Pipeline(示例片段):
pipeline {
agent any
environment {
FLUTTER_HOME = '/opt/flutter'
PATH = "${env.FLUTTER_HOME}/bin:${env.PATH}"
}
stages {
stage('Checkout') {
steps { git url: 'https://github.com/your/repo.git', branch: 'main' }
}
stage('Setup Flutter') {
steps {
sh 'flutter doctor -v'
sh 'flutter pub get'
}
}
stage('Test') {
steps { sh 'flutter test --coverage' }
post { always { junit '**/test/**/TEST-*.xml' } }
}
stage('Build') {
steps {
sh 'flutter build apk --release'
sh 'flutter build appbundle --release'
}
}
}
post {
always { cleanWs() }
}
}
- 说明:
- 可将 /opt/flutter 替换为你的 Flutter SDK 路径;如需容器化,可改为 agent { docker ‘cirrusci/flutter:stable’ }。
五 关键注意事项与扩展
- 平台与产物:
- Android:构建 APK 与 App Bundle;确保 JDK 与 Android SDK/NDK 可用(GitHub Actions 的 ubuntu-latest 与 GitLab 的 flutter 镜像通常已预置)。
- Web:添加构建步骤 flutter build web --release,并部署到静态站点托管。
- 测试策略:
- 在 Debian 环境中建议覆盖 单元测试、Widget 测试、集成/端到端测试,并在 CI 中常态化执行以提升稳定性与质量。
- 缓存与加速:
- 在 GitHub Actions 中使用 actions/cache 缓存 ~/.pub-cache 与构建产物;在 GitLab/Jenkins 中使用各自缓存机制,显著缩短执行时间。
- 质量门禁:
- 加入 flutter analyze、lint、测试覆盖率阈值、构建失败即阻断合并 等策略,保证主分支质量。
- 产物与发布:
- 归档 APK/AAB 并通过 Secrets 上传到制品库或分发渠道;结合 Slack/企业微信/邮件 通知构建结果。
以上就是关于“Flutter在Debian上的持续集成如何配置”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm