加载中~~~

加载过慢请开启缓存 浏览器默认开启

flutter ci/cd pipeline

Flutter CI/CD Pipeline

这是仅构建android apk的Flutter CI/CD Github Action工作流

# .github/workflows/android_flutter_ci.yaml

name: Flutter CI/CD Pipeline

on:
  push:
    branches: [ main ]
    tags:
      - 'v*'  # Only tags with specific version formats (e.g., v1.0) will trigger this workflow
  pull_request:
    branches: [ main ]  # Only PRs targeting the main branch will trigger this workflow

jobs:
  prepare:
    runs-on: ubuntu-latest
    outputs:
      flutter_version: '3.27.1'
    steps:
      - name: Determine Flutter version
        run: echo "flutter_version=3.27.1" >> $GITHUB_ENV  # Set Flutter version for subsequent jobs

  build_and_test:
    needs: prepare
    runs-on: ubuntu-latest
    strategy:
      matrix:
        platform: [apk]
        include:
          - platform: apk
            os: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2  # Check out repository code
      - name: Setup Flutter
        uses: subosito/flutter-action@v1
        with:
          flutter-version: ${{ env.flutter_version }}  # Use the determined Flutter version
      - name: Install dependencies
        run: flutter pub get  # Install Flutter project dependencies
      - name: Build
        run: |
              flutter build apk --release  # Build Android APK
      - name: Archive Artifacts
        uses: actions/upload-artifact@v4  # Upload build artifacts
        with:
          name: ${{ matrix.platform }}-release
          path: |
            build/app/outputs/flutter-apk/*.apk
            build/ios/iphoneos/*.app
  deploy:
    needs: build_and_test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Download Artifacts
        uses: actions/download-artifact@v4  # Download build artifacts
        with:
          name: apk-release
      - name: Deploy
        run: |
          VERSION=${GITHUB_REF#refs/tags/}
          echo "Deploying version $VERSION to production"
          # Add specific deployment commands here, such as uploading to app stores or servers