Files
nl-tools/.github/workflows/build.yml
2025-12-11 10:14:20 +08:00

114 lines
2.9 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: 🧀 打包所有平台
on:
# 手动触发
workflow_dispatch:
# 推送 tag 时触发
push:
tags:
- 'v*'
jobs:
build:
strategy:
fail-fast: false # 一个失败不影响其他
matrix:
include:
# Windows 64位
- os: windows-latest
platform: win64
artifact_name: CheeseCloudTools-Windows-x64
# macOS Intel (使用 macos-15 替代已废弃的 macos-13)
- os: macos-15
platform: mac_x64
artifact_name: CheeseCloudTools-macOS-Intel
# macOS Apple Silicon
- os: macos-latest
platform: mac_arm64
artifact_name: CheeseCloudTools-macOS-AppleSilicon
# Linux 64位
- os: ubuntu-latest
platform: linux64
artifact_name: CheeseCloudTools-Linux-x64
runs-on: ${{ matrix.os }}
steps:
- name: 📥 检出代码
uses: actions/checkout@v4
- name: 🐍 设置 Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
architecture: ${{ matrix.python_arch || 'x64' }}
# Linux 需要安装 Qt 依赖
- name: 🐧 安装 Linux 依赖
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
libxcb-xinerama0 \
libxcb-cursor0 \
libxkbcommon-x11-0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render-util0 \
libxcb-shape0 \
libegl1 \
libgl1-mesa-glx \
libxcb-glx0 \
libglib2.0-0 \
libdbus-1-3
- name: 📦 安装依赖
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pyinstaller
- name: 🔨 执行打包
run: python build_app.py --platform ${{ matrix.platform }}
- name: 📤 上传构建产物
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact_name }}
path: dist/${{ matrix.platform }}/
retention-days: 30
# 创建 Release仅在推送 tag 时)
release:
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: 📥 下载所有构建产物
uses: actions/download-artifact@v4
with:
path: artifacts/
- name: 📦 打包为 ZIP
run: |
cd artifacts
for dir in */; do
zip -r "${dir%/}.zip" "$dir"
done
- name: 🚀 创建 Release
uses: softprops/action-gh-release@v1
with:
files: artifacts/*.zip
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}