添加一个自动构建Windows安装包的脚本,压缩包格式改为使用tar.xz #42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Android debug APK | |
| on: | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| env: | |
| CARGO_PROFILE_DEV_DEBUG: 1 | |
| CARGO_INCREMENTAL: 0 | |
| steps: | |
| - name: 检出代码 | |
| uses: actions/checkout@v4 | |
| - name: 释放磁盘空间 (Nuclear Mode) | |
| run: | | |
| echo "清理前空间:" && df -h | |
| sudo rm -rf /opt/hostedtoolcache | |
| sudo rm -rf /usr/local/lib/android | |
| sudo mkdir -p /usr/local/lib/android/sdk | |
| sudo chown -R $USER:$USER /usr/local/lib/android | |
| sudo rm -rf /usr/share/dotnet | |
| sudo rm -rf /opt/codeql | |
| docker system prune -a -f | |
| sudo apt-get clean | |
| echo "清理后空间:" && df -h | |
| - name: 解密敏感文件 (git-crypt) | |
| env: | |
| GIT_CRYPT_KEY: ${{ secrets.GIT_CRYPT_KEY }} | |
| run: | | |
| sudo apt-get update && sudo apt-get install -y git-crypt | |
| echo "$GIT_CRYPT_KEY" | base64 -d > ./git-crypt-key | |
| git-crypt unlock ./git-crypt-key | |
| rm ./git-crypt-key | |
| - name: 设置 Java 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "21" | |
| - name: 设置 Android SDK | |
| uses: android-actions/setup-android@v3 | |
| - name: 设置 Dart SDK | |
| uses: dart-lang/setup-dart@v1 | |
| - name: 安装 FVM | |
| run: | | |
| dart pub global activate fvm | |
| echo "$HOME/.pub-cache/bin" >> $GITHUB_PATH | |
| - name: 使用 FVM 安装 Flutter | |
| run: | | |
| fvm install | |
| fvm use --force | |
| echo "$GITHUB_WORKSPACE/.fvm/flutter_sdk/bin" >> $GITHUB_PATH | |
| - name: 安装 Rust 工具链 | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: stable | |
| targets: | | |
| aarch64-linux-android | |
| armv7-linux-androideabi | |
| x86_64-linux-android | |
| - name: 读取 NDK 版本配置 | |
| id: ndk-config | |
| run: | | |
| NDK_VER=$(grep "ndkVersion" android/app/build.gradle.kts | awk -F'"' '{print $2}') | |
| if [ -z "$NDK_VER" ]; then | |
| echo "错误: 在 android/app/build.gradle.kts 中未找到 ndkVersion 配置" | |
| exit 1 | |
| fi | |
| echo "检测到 NDK 版本: $NDK_VER" | |
| echo "ndk_version=$NDK_VER" >> $GITHUB_OUTPUT | |
| - name: 安装 Android NDK | |
| run: | | |
| echo "正在安装 NDK: ${{ steps.ndk-config.outputs.ndk_version }}" | |
| yes | sdkmanager "ndk;${{ steps.ndk-config.outputs.ndk_version }}" | |
| - name: 设置 NDK 环境变量 | |
| run: | | |
| NDK_VER=${{ steps.ndk-config.outputs.ndk_version }} | |
| ANDROID_HOME=${ANDROID_HOME:-$ANDROID_SDK_ROOT} | |
| NDK_PATH="$ANDROID_HOME/ndk/$NDK_VER" | |
| echo "NDK 安装路径: $NDK_PATH" | |
| echo "ANDROID_NDK_HOME=$NDK_PATH" >> $GITHUB_ENV | |
| echo "ANDROID_NDK_ROOT=$NDK_PATH" >> $GITHUB_ENV | |
| echo "$NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin" >> $GITHUB_PATH | |
| - name: 接受 Android Licenses | |
| run: yes | flutter doctor --android-licenses || true | |
| - name: 构建 APK (Debug) | |
| run: flutter build apk --debug --split-per-abi | |
| - name: 清理敏感文件 | |
| if: always() | |
| run: | | |
| git-crypt lock || true | |
| rm -f android/key.properties | |
| - name: 上传 APK | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: debug-apk | |
| path: build/app/outputs/flutter-apk/app-x86_64-debug.apk |