Some checks failed
Build Android APK / 编译 Android APK (release) (push) Has been skipped
Build Windows / 编译 libcore (Windows) (push) Failing after 9s
Build Android APK / 编译 libcore.aar (push) Failing after 10s
Build Multi-Platform / 编译 libcore (iOS/tvOS) (push) Failing after 6s
Build Windows / build (push) Has been skipped
Build Multi-Platform / 编译 libcore (Android) (push) Has been cancelled
Build Multi-Platform / 编译 libcore (Windows) (push) Has been cancelled
Build Android APK / 创建 GitHub Release (push) Has been cancelled
Build Multi-Platform / 编译 libcore (macOS) (push) Has been cancelled
Build Multi-Platform / 编译 libcore (Linux) (push) Has been cancelled
Build Multi-Platform / 构建 Android APK (push) Has been cancelled
Build Multi-Platform / 构建 Windows (push) Has been cancelled
Build Multi-Platform / 构建 macOS (push) Has been cancelled
Build Multi-Platform / 构建 Linux (push) Has been cancelled
Build Multi-Platform / 创建 Release (push) Has been cancelled
Build Multi-Platform / 构建 iOS (push) Has been cancelled
- 使用 Node.js 20.x 确保最新稳定补丁 - 添加 npm 缓存以加速构建 - 增加 Node.js 安装验证步骤
154 lines
4.4 KiB
YAML
Executable File
154 lines
4.4 KiB
YAML
Executable File
name: Build Windows
|
||
|
||
on:
|
||
push:
|
||
branches: [ main, master ]
|
||
pull_request:
|
||
branches: [ main, master ]
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
# 先编译 libcore
|
||
build-libcore:
|
||
name: 编译 libcore (Windows)
|
||
runs-on: client-server
|
||
|
||
steps:
|
||
- name: 🔧 设置 Node.js
|
||
uses: actions/setup-node@v4
|
||
with:
|
||
node-version: '20.x' # 使用 20.x 以确保最新稳定补丁
|
||
cache: 'npm' # 启用缓存以加速并减少下载问题
|
||
|
||
- name: 🔍 验证 Node.js 安装
|
||
run: |
|
||
echo "Node.js 版本: $(node --version)"
|
||
echo "npm 版本: $(npm --version)"
|
||
echo "PATH: $PATH"
|
||
which node || echo "❌ node 未在 PATH 中"
|
||
node --version || echo "❌ node 命令失败"
|
||
|
||
- name: 📥 Checkout 代码
|
||
uses: actions/checkout@v4
|
||
with:
|
||
submodules: recursive
|
||
fetch-depth: 0
|
||
|
||
- name: 🔧 设置 Go 环境
|
||
uses: actions/setup-go@v5
|
||
with:
|
||
go-version: '1.23'
|
||
cache: true
|
||
cache-dependency-path: libcore/go.sum
|
||
|
||
- name: 🔧 安装 MinGW
|
||
run: |
|
||
sudo apt-get update
|
||
sudo apt-get install -y mingw-w64
|
||
|
||
- name: 📦 编译 libcore.dll
|
||
working-directory: libcore
|
||
run: |
|
||
echo "🚀 开始编译 Windows libcore..."
|
||
make windows-amd64
|
||
|
||
if [ -f "bin/libcore.dll" ] && [ -f "bin/HiddifyCli.exe" ]; then
|
||
echo "✅ Windows libcore 编译成功"
|
||
ls -lh bin/
|
||
else
|
||
echo "❌ Windows libcore 编译失败"
|
||
exit 1
|
||
fi
|
||
|
||
- name: 📤 上传 Windows libcore
|
||
uses: actions/upload-artifact@v4
|
||
with:
|
||
name: libcore-windows
|
||
path: |
|
||
libcore/bin/libcore.dll
|
||
libcore/bin/HiddifyCli.exe
|
||
libcore/bin/webui/**
|
||
retention-days: 7
|
||
|
||
# 构建 Windows 应用
|
||
build:
|
||
runs-on: windows-latest
|
||
needs: build-libcore
|
||
|
||
steps:
|
||
- name: 📥 Checkout 代码
|
||
uses: actions/checkout@v4
|
||
|
||
- name: 📥 下载 libcore
|
||
uses: actions/download-artifact@v4
|
||
with:
|
||
name: libcore-windows
|
||
path: .
|
||
|
||
- name: 🔧 复制 libcore 文件到正确位置并重命名
|
||
run: |
|
||
Write-Host "📋 复制 libcore 文件..."
|
||
|
||
# 创建目标目录
|
||
New-Item -ItemType Directory -Force -Path libcore\bin
|
||
|
||
# 查找并复制 HiddifyCli.exe,重命名为 BearVPNCli.exe
|
||
$exeFiles = Get-ChildItem -Recurse -Filter "HiddifyCli.exe" -ErrorAction SilentlyContinue
|
||
if ($exeFiles) {
|
||
$sourceExe = $exeFiles[0].FullName
|
||
Write-Host "✅ 找到 HiddifyCli.exe: $sourceExe"
|
||
Write-Host "📝 复制并重命名为 BearVPNCli.exe"
|
||
Copy-Item $sourceExe libcore\bin\BearVPNCli.exe
|
||
Write-Host "✅ 重命名完成:HiddifyCli.exe → BearVPNCli.exe"
|
||
} else {
|
||
Write-Host "⚠️ 未找到 HiddifyCli.exe"
|
||
}
|
||
|
||
# 复制 libcore.dll
|
||
$dllFiles = Get-ChildItem -Recurse -Filter "libcore.dll" -ErrorAction SilentlyContinue
|
||
if ($dllFiles) {
|
||
$sourceDll = $dllFiles[0].FullName
|
||
Write-Host "✅ 找到 libcore.dll: $sourceDll"
|
||
Copy-Item $sourceDll libcore\bin\libcore.dll
|
||
} else {
|
||
Write-Host "⚠️ 未找到 libcore.dll"
|
||
}
|
||
|
||
Write-Host ""
|
||
Write-Host "📄 验证文件:"
|
||
if (Test-Path libcore\bin) {
|
||
Get-ChildItem libcore\bin\ -ErrorAction SilentlyContinue | Format-Table Name, Length
|
||
}
|
||
|
||
- name: Setup Flutter
|
||
uses: subosito/flutter-action@v2
|
||
with:
|
||
flutter-version: '3.24.5'
|
||
channel: 'stable'
|
||
|
||
- name: Enable Windows desktop
|
||
run: flutter config --enable-windows-desktop
|
||
|
||
- name: Get dependencies
|
||
run: flutter pub get
|
||
|
||
- name: Generate code
|
||
run: dart run build_runner build --delete-conflicting-outputs
|
||
|
||
- name: Build Windows Debug
|
||
run: flutter build windows
|
||
|
||
- name: Build Windows Release
|
||
run: flutter build windows --release
|
||
|
||
- name: Upload Debug build artifacts
|
||
uses: actions/upload-artifact@v4
|
||
with:
|
||
name: windows-debug-build
|
||
path: build/windows/runner/Debug/
|
||
|
||
- name: Upload Release build artifacts
|
||
uses: actions/upload-artifact@v4
|
||
with:
|
||
name: windows-release-build
|
||
path: build/windows/runner/Release/ |