Files
Shortcut_Sync_PotPlayer/.github/workflows/build-exe.yml
miu 43868f576e
Some checks failed
Build Windows EXE with Full Image / build (push) Failing after 25s
更新 .github/workflows/build-exe.yml
2026-03-15 19:00:25 +08:00

100 lines
3.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Build Windows EXE with Full Image
on: [push]
jobs:
build:
runs-on: Ubuntu_docker_act
steps:
- uses: actions/checkout@v4
# 步骤1下载 Python 3.9.9 安装包(保持文件名一致)
- name: Download Python 3.9.9 installer
run: |
wget https://mirrors.tuna.tsinghua.edu.cn/python/3.9.9/python-3.9.9-amd64.exe
ls -lh python-3.9.9-amd64.exe
# 验证文件完整性
file python-3.9.9-amd64.exe
# 步骤2先测试 Wine 能否运行简单命令
- name: Test Wine environment
run: |
wine --version
xvfb-run wine cmd /c "echo Wine is working"
# 步骤3安装 Python使用正确的文件名
- name: Install Python in Wine
run: |
# 使用绝对路径并添加调试信息
echo "Current directory: $(pwd)"
echo "Files in current directory:"
ls -la
# 确保文件存在
if [ ! -f "python-3.9.9-amd64.exe" ]; then
echo "Installer not found!"
exit 1
fi
# 尝试用 wineconsole 而不是 wine有时更稳定
xvfb-run wine --backend=curses cmd /c "python-3.9.9-amd64.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0"
# 等待安装完成
sleep 15
# 验证安装进程
echo "Installation completed, checking..."
# 步骤4更彻底地查找 Python
- name: Find and verify Python
run: |
echo "=== Searching all possible Python locations ==="
# 查找所有 python.exe
find /root/.wine/drive_c -name "python.exe" 2>/dev/null | while read path; do
echo "Found: $path"
echo "Version info:"
wine "$path" --version 2>/dev/null || echo "Cannot run $path"
done
# 尝试常见路径
COMMON_PATHS=(
"/root/.wine/drive_c/Python39/python.exe"
"/root/.wine/drive_c/Python39-32/python.exe"
"/root/.wine/drive_c/Program Files/Python39/python.exe"
"/root/.wine/drive_c/users/runner/AppData/Local/Programs/Python/Python39/python.exe"
)
for path in "${COMMON_PATHS[@]}"; do
if [ -f "$path" ]; then
echo "Found Python at standard location: $path"
PYTHON_EXE="$path"
break
fi
done
if [ -z "$PYTHON_EXE" ]; then
echo "Python not found in standard locations"
exit 1
fi
echo "PYTHON_EXE=$PYTHON_EXE" >> $GITHUB_ENV
wine "$PYTHON_EXE" --version
# 步骤5安装依赖
- name: Install dependencies
run: |
# 升级 pip
wine "$PYTHON_EXE" -m pip install --upgrade pip
# 安装包
wine "$PYTHON_EXE" -m pip install pyinstaller keyboard pywin32
# 步骤6构建 EXE
- name: Build EXE
run: |
wine "$PYTHON_EXE" -m PyInstaller --onefile --windowed --name Shortcut_Sync_PotPlayer main.py
# 步骤7上传产物
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: Shortcut_Sync_PotPlayer
path: dist/Shortcut_Sync_PotPlayer.exe