forked from Hsdi/Shortcut_Sync_PotPlayer
59 lines
1.9 KiB
YAML
59 lines
1.9 KiB
YAML
name: Build Windows EXE
|
|
on:
|
|
push:
|
|
branches: ["main"]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-build # 使用 Ubuntu 基础镜像
|
|
steps:
|
|
# 第一步:安装所有需要的环境
|
|
- name: Install Node.js and Python
|
|
run: |
|
|
apt-get update
|
|
apt-get install -y curl wget git software-properties-common
|
|
|
|
# 安装 Node.js 18
|
|
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
|
|
apt-get install -y nodejs
|
|
|
|
# 安装 Python 3.13
|
|
add-apt-repository ppa:deadsnakes/ppa -y
|
|
apt-get update
|
|
apt-get install -y python3.13 python3.13-dev python3.13-distutils
|
|
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.13
|
|
ln -sf /usr/bin/python3.13 /usr/bin/python
|
|
ln -sf /usr/bin/python3.13 /usr/bin/python3
|
|
|
|
# 安装 Wine (用于Windows交叉编译)
|
|
dpkg --add-architecture i386
|
|
apt-get update
|
|
apt-get install -y wine64 wine32
|
|
|
|
# 验证安装
|
|
echo "Node version: $(node --version)"
|
|
echo "Python version: $(python --version)"
|
|
echo "Wine version: $(wine --version)"
|
|
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
# 安装 Python 依赖
|
|
- name: Install Python dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install pyinstaller keyboard pywin32
|
|
|
|
# 构建 EXE
|
|
- name: Build EXE with PyInstaller
|
|
run: |
|
|
# 使用 Wine 运行 PyInstaller 来构建 Windows EXE
|
|
wine python -m PyInstaller --onefile --windowed --name Shortcut_Sync_PotPlayer main.py
|
|
|
|
# 上传构建产物
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: Shortcut_Sync_PotPlayer
|
|
path: dist/Shortcut_Sync_PotPlayer.exe |