在Ubuntu上搭建Flutter CI/CD(持续集成和持续部署)流程,可以按照以下步骤进行:
首先,确保你的Ubuntu系统已经安装了以下工具:
sudo apt update sudo apt install git # 安装Dart sudo apt install wget unzip wget https://storage.googleapis.com/dart-archive/channels/stable/release/linux/debian/9/sdk/dartsdk-linux-x64-release.zip unzip dartsdk-linux-x64-release.zip -d ~/flutter_sdk echo 'export PATH="$PATH:$HOME/flutter_sdk/bin"' >> ~/.bashrc source ~/.bashrc # 验证安装 flutter doctor sudo apt update sudo apt install openjdk-11-jdk 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 update sudo apt install jenkins 启动Jenkins服务:
sudo systemctl start jenkins sudo systemctl enable jenkins 访问 http://<your_server_ip>:8080 并按照提示完成Jenkins的初始配置。
在Jenkins管理界面中,安装以下插件:
在Jenkins中创建一个新的Pipeline项目,并配置Pipeline脚本。以下是一个简单的示例:
pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/your-repo/your-flutter-app.git' } } stage('Install Flutter') { steps { sh 'flutter doctor' sh 'flutter pub get' } } stage('Build Android') { steps { sh 'flutter build apk' } } stage('Build iOS') { steps { // 需要Mac环境来构建iOS应用 // 可以使用Jenkins的SSH Agent插件来远程执行这些命令 sh 'flutter build ios' } } stage('Deploy') { steps { // 部署逻辑,例如上传到服务器或发布到应用商店 } } } } 如果你更喜欢使用GitHub Actions,可以在你的Flutter项目根目录下创建一个 .github/workflows/flutter-ci.yml 文件,并添加以下内容:
name: Flutter CI on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Flutter run: | curl https://storage.googleapis.com/dart-archive/channels/stable/release/linux/debian/9/sdk/dartsdk-linux-x64-release.zip -o dart-sdk.zip unzip dart-sdk.zip -d flutter_sdk export PATH="$PATH:$HOME/flutter_sdk/bin" flutter doctor - name: Install dependencies run: flutter pub get - name: Build and test run: flutter test - name: Build for Android run: flutter build apk - name: Build for iOS run: flutter build ios env: FLUTTER_TARGET: ios 通过以上步骤,你就可以在Ubuntu上搭建一个基本的Flutter CI/CD流程。根据具体需求,你可以进一步扩展和优化这个流程。