Skip to content

添加一个自动构建Windows安装包的脚本,压缩包格式改为使用tar.xz #42

添加一个自动构建Windows安装包的脚本,压缩包格式改为使用tar.xz

添加一个自动构建Windows安装包的脚本,压缩包格式改为使用tar.xz #42

Workflow file for this run

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