温馨提示×

Debian系统下Flutter应用的持续集成与部署

小樊
55
2025-08-15 11:04:24
栏目: 智能运维

在Debian系统下实现Flutter应用的持续集成与部署(CI/CD),可参考以下步骤:

一、环境准备

  1. 安装基础工具
    sudo apt update && sudo apt install -y git cmake wget unzip 
  2. 安装Flutter SDK
    • 下载SDK并解压至指定目录(如/opt/flutter):
      wget https://dl.flutter.io/flutter/flutter-<version>-linux-x64.zip unzip flutter-<version>-linux-x64.zip -d /opt/flutter 
    • 添加环境变量:编辑~/.bashrc,添加export PATH="$PATH:/opt/flutter/bin",执行source ~/.bashrc
    • 验证安装:flutter doctor
  3. 安装Dart SDK(Flutter依赖)
    sudo apt install -y dart 

二、配置CI工具(以GitHub Actions为例)

  1. 创建工作流文件
    在项目根目录的.github/workflows/下创建flutter-ci.yml,内容示例:
    name: Flutter CI/CD on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Flutter uses: subosito/flutter-action@v1 with: channel: 'stable' - name: Install dependencies run: flutter pub get - name: Run tests run: flutter test - name: Build APK run: flutter build apk --release - name: Upload artifact uses: actions/upload-artifact@v2 with: name: release-apk path: build/app/outputs/apk/release/app-release.apk 
    • 支持多阶段部署(如构建后上传至服务器):在jobs中添加deploy阶段,编写部署脚本(如scp上传文件)。

三、部署到服务器

  1. 手动部署
    • 构建产物(如APK)可通过scp命令上传至服务器:
      scp build/app/outputs/apk/release/app-release.apk user@server-ip:/path/to/deploy 
  2. 自动化部署(需配置服务器权限)
    • 在CI工作流中添加部署步骤,使用SSH密钥或GitHub Secrets存储服务器凭证,执行远程命令(如ssh+pm2重启服务)。

四、可选:Jenkins配置

  1. 安装Jenkins
    sudo apt install -y openjdk-11-jdk wget wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt install -y jenkins 
  2. 创建Pipeline
    • 在Jenkins中新建Pipeline项目,配置脚本:
      pipeline { agent any stages { stage('Build') { steps { sh 'flutter build apk' } } stage('Deploy') { steps { sh 'scp build/app/outputs/apk/release/app-release.apk user@server-ip:/deploy/path' } } } } 

关键注意事项

  • 权限管理:确保CI工具有权限访问代码仓库和部署目标服务器(通过SSH密钥或GitHub Secrets)。
  • 环境一致性:使用Docker容器或虚拟机确保开发与部署环境一致。
  • 日志监控:通过CI工具的日志功能排查构建或部署失败问题。

以上步骤参考自,可根据项目需求调整构建流程(如添加iOS构建、代码覆盖率检查等)。

0