Files
hi-client/.github/workflows/build-windows.yml
T
shanshanzhong147 f738ba9245
Build Android APK / 编译 libcore.aar (push) Failing after 9s
Build Android APK / 编译 Android APK (release) (push) Has been skipped
Build Multi-Platform / 编译 libcore (iOS/tvOS) (push) Failing after 7s
Build Windows / 编译 libcore (Windows) (20.15.1) (push) Successful in 19m56s
Build Windows / build (push) Failing after 7h0m4s
Build Multi-Platform / 编译 libcore (Android) (push) Has been cancelled
Build Android APK / 创建 GitHub Release (push) Has been cancelled
Build Multi-Platform / 编译 libcore (Windows) (push) Has been cancelled
Build Multi-Platform / 编译 libcore (macOS) (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
Build Multi-Platform / 编译 libcore (Linux) (push) Has been cancelled
ci(workflow): 在Windows构建流程中添加Git到PATH
添加PowerShell步骤以将Git的可执行路径添加到系统PATH环境变量中,确保在Windows环境下可以正常使用git命令
2025-11-06 02:55:16 -08:00

176 lines
5.0 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
container:
image: node:20
strategy:
matrix:
# 只有node支持版本号别名
node: ['20.15.1']
steps:
- 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: |
# 在 GitHub 托管 runner(有 sudo)与 act/自托管容器(无 sudo)均可运行
if command -v sudo >/dev/null 2>&1; then
sudo apt-get update
sudo apt-get install -y mingw-w64
else
echo "sudo 不存在,按 root 用户直接执行 apt-get"
export DEBIAN_FRONTEND=noninteractive
apt-get update || apt update
apt-get install -y mingw-w64 || apt install -y mingw-w64
fi
- 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@v3
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:
# 新增:引导步骤,下载并设置 Node.js(便携版,无需全局安装)
- name: 🔧 Add Git to PATH (Windows)
if: ${{ runner.os == 'Windows' }}
shell: powershell
run: |
$paths = @(
'C:\Program Files\Git\cmd',
'C:\Program Files\Git\bin'
)
foreach ($p in $paths) {
if (Test-Path $p) {
Add-Content -Path $env:GITHUB_PATH -Value $p
Write-Host "✅ Added to PATH: $p"
} else {
Write-Host "⚠️ Path not found: $p"
}
}
git --version
- name: 📥 Checkout 代码
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: 📥 下载 libcore
uses: actions/download-artifact@v3
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@v3
with:
name: windows-debug-build
path: build/windows/runner/Debug/
- name: Upload Release build artifacts
uses: actions/upload-artifact@v3
with:
name: windows-release-build
path: build/windows/runner/Release/