fix: 修复 GitHub Actions 构建配置

- 修复 libcore 编译命令
- 强制所有平台使用 Release 构建
- 添加 Linux tray_manager 依赖
This commit is contained in:
Rust 2025-10-27 23:20:24 +08:00
parent d02eed3bd8
commit 6ca55a3d44
2 changed files with 33 additions and 54 deletions

View File

@ -85,7 +85,7 @@ jobs:
working-directory: libcore
run: |
echo "🚀 开始编译 libcore..."
bash docker-compile.sh || make android
make android
echo "✅ 编译完成,检查产物..."
ls -lh bin/
@ -177,13 +177,9 @@ jobs:
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
- name: 🔨 构建 APK
- name: 🔨 构建 APK (Release)
run: |
if [ "${{ matrix.build_type }}" = "release" ]; then
flutter build apk --release --split-per-abi
else
flutter build apk --debug --split-per-abi
fi
flutter build apk --release --split-per-abi
- name: 📋 生成构建信息
id: build_info
@ -201,17 +197,16 @@ jobs:
- name: 📦 重命名 APK 文件
run: |
BUILD_TYPE="${{ matrix.build_type }}"
COMMIT_SHA=${{ steps.build_info.outputs.commit_sha }}
DATE=$(date '+%Y%m%d')
cd build/app/outputs/flutter-apk/
for file in app-*-${BUILD_TYPE}.apk; do
for file in app-*-release.apk; do
if [ -f "$file" ]; then
# 提取架构名称 (arm64-v8a, armeabi-v7a, x86_64)
ARCH=$(echo "$file" | sed "s/app-\(.*\)-${BUILD_TYPE}.apk/\1/")
NEW_NAME="BearVPN-${ARCH}-${BUILD_TYPE}-${DATE}-${COMMIT_SHA}.apk"
ARCH=$(echo "$file" | sed "s/app-\(.*\)-release.apk/\1/")
NEW_NAME="BearVPN-${ARCH}-release-${DATE}-${COMMIT_SHA}.apk"
mv "$file" "$NEW_NAME"
@ -230,21 +225,21 @@ jobs:
- name: 📤 上传 APK (arm64-v8a)
uses: actions/upload-artifact@v4
with:
name: apk-arm64-v8a-${{ matrix.build_type }}
name: apk-arm64-v8a-release
path: build/app/outputs/flutter-apk/*arm64-v8a*.apk
retention-days: 30
- name: 📤 上传 APK (armeabi-v7a)
uses: actions/upload-artifact@v4
with:
name: apk-armeabi-v7a-${{ matrix.build_type }}
name: apk-armeabi-v7a-release
path: build/app/outputs/flutter-apk/*armeabi-v7a*.apk
retention-days: 30
- name: 📤 上传 APK (x86_64)
uses: actions/upload-artifact@v4
with:
name: apk-x86_64-${{ matrix.build_type }}
name: apk-x86_64-release
path: build/app/outputs/flutter-apk/*x86_64*.apk
retention-days: 30

View File

@ -91,7 +91,7 @@ jobs:
working-directory: libcore
run: |
echo "🚀 开始编译 Android libcore..."
bash docker-compile.sh || make android
make android
if [ -f "bin/libcore.aar" ]; then
echo "✅ libcore.aar 生成成功"
@ -168,26 +168,20 @@ jobs:
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
- name: 🔨 构建 APK
- name: 🔨 构建 APK (Release)
run: |
BUILD_TYPE="${{ inputs.build_type || 'release' }}"
if [ "$BUILD_TYPE" = "release" ]; then
flutter build apk --release --split-per-abi
else
flutter build apk --debug --split-per-abi
fi
flutter build apk --release --split-per-abi
- name: 📦 重命名 APK
run: |
BUILD_TYPE="${{ inputs.build_type || 'release' }}"
COMMIT_SHA=${GITHUB_SHA::7}
DATE=$(date '+%Y%m%d')
cd build/app/outputs/flutter-apk/
for file in app-*-${BUILD_TYPE}.apk; do
for file in app-*-release.apk; do
if [ -f "$file" ]; then
ARCH=$(echo "$file" | sed "s/app-\(.*\)-${BUILD_TYPE}.apk/\1/")
NEW_NAME="BearVPN-android-${ARCH}-${BUILD_TYPE}-${DATE}-${COMMIT_SHA}.apk"
ARCH=$(echo "$file" | sed "s/app-\(.*\)-release.apk/\1/")
NEW_NAME="BearVPN-android-${ARCH}-release-${DATE}-${COMMIT_SHA}.apk"
mv "$file" "$NEW_NAME"
echo "✅ $NEW_NAME"
fi
@ -241,24 +235,18 @@ jobs:
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
- name: 🔨 构建 Windows
- name: 🔨 构建 Windows (Release)
run: |
$BUILD_TYPE = "${{ inputs.build_type || 'release' }}"
if ($BUILD_TYPE -eq "release") {
flutter build windows --release
} else {
flutter build windows --debug
}
flutter build windows --release
- name: 📦 打包 Windows
shell: bash
run: |
BUILD_TYPE="${{ inputs.build_type || 'release' }}"
COMMIT_SHA=${GITHUB_SHA::7}
DATE=$(date '+%Y%m%d')
cd build/windows/x64/runner/Release
7z a -tzip "../../../../../BearVPN-windows-x64-${BUILD_TYPE}-${DATE}-${COMMIT_SHA}.zip" ./*
7z a -tzip "../../../../../BearVPN-windows-x64-release-${DATE}-${COMMIT_SHA}.zip" ./*
- name: 📤 上传 Windows
uses: actions/upload-artifact@v4
@ -307,23 +295,17 @@ jobs:
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
- name: 🔨 构建 macOS
- name: 🔨 构建 macOS (Release)
run: |
BUILD_TYPE="${{ inputs.build_type || 'release' }}"
if [ "$BUILD_TYPE" = "release" ]; then
flutter build macos --release
else
flutter build macos --debug
fi
flutter build macos --release
- name: 📦 打包 macOS
run: |
BUILD_TYPE="${{ inputs.build_type || 'release' }}"
COMMIT_SHA=${GITHUB_SHA::7}
DATE=$(date '+%Y%m%d')
cd build/macos/Build/Products/Release
zip -r -y "../../../../../BearVPN-macos-${BUILD_TYPE}-${DATE}-${COMMIT_SHA}.zip" BearVPN.app
zip -r -y "../../../../../BearVPN-macos-release-${DATE}-${COMMIT_SHA}.zip" BearVPN.app
- name: 📤 上传 macOS
uses: actions/upload-artifact@v4
@ -348,7 +330,15 @@ jobs:
- name: 🔧 安装 Linux 依赖
run: |
sudo apt-get update
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev
sudo apt-get install -y \
clang \
cmake \
ninja-build \
pkg-config \
libgtk-3-dev \
liblzma-dev \
libstdc++-12-dev \
libayatana-appindicator3-dev
- name: 🔧 设置 Flutter
uses: subosito/flutter-action@v2
@ -377,23 +367,17 @@ jobs:
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
- name: 🔨 构建 Linux
- name: 🔨 构建 Linux (Release)
run: |
BUILD_TYPE="${{ inputs.build_type || 'release' }}"
if [ "$BUILD_TYPE" = "release" ]; then
flutter build linux --release
else
flutter build linux --debug
fi
flutter build linux --release
- name: 📦 打包 Linux
run: |
BUILD_TYPE="${{ inputs.build_type || 'release' }}"
COMMIT_SHA=${GITHUB_SHA::7}
DATE=$(date '+%Y%m%d')
cd build/linux/x64/release/bundle
tar -czf "../../../../../BearVPN-linux-x64-${BUILD_TYPE}-${DATE}-${COMMIT_SHA}.tar.gz" ./*
tar -czf "../../../../../BearVPN-linux-x64-release-${DATE}-${COMMIT_SHA}.tar.gz" ./*
- name: 📤 上传 Linux
uses: actions/upload-artifact@v4