温馨提示×

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

小樊
61
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