Flutter在Debian上的持续集成如何配置
导读:在 Debian 上配置 Flutter 持续集成 一 方案总览 在 Debian 环境中,常见的 CI 工具有:GitHub Actions(托管)、GitLab CI/CD(托管/自托管)、Jenkins(自托管)。 典型流程包含:拉...
在 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/企业微信/邮件 通知构建结果。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Flutter在Debian上的持续集成如何配置
本文地址: https://pptw.com/jishu/772458.html
