eigent/.github/workflows/build.yml
2025-08-20 11:24:01 +08:00

108 lines
2.9 KiB
YAML

name: Build
on:
push:
tags:
- "v*"
paths-ignore:
- "**.md"
- "**.spec.js"
- ".idea"
- ".vscode"
- ".dockerignore"
- "Dockerfile"
- ".gitignore"
- ".github/**"
- "!.github/workflows/build.yml"
permissions:
contents: write
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, macos-13, windows-latest]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install Python Dependencies
run: |
python -m pip install --upgrade pip
pip install uv
- name: Install Dependencies
run: npm install
- name: Build Release Files
run: npm run build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_LINK: ${{ secrets.CERT_P12 }}
CSC_KEY_PASSWORD: ${{ secrets.CERT_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: release_on_${{ matrix.os }}
path: release/
retention-days: 5
- name: Prepare Update Files
shell: bash
run: |
# 创建目录
mkdir -p release/mac-x64 release/mac-arm64 release/win-x64
# 移动 macOS 文件
if [[ "${{ matrix.os }}" == "macos-latest" ]]; then
if [[ "${{ matrix.arch }}" == "x64" ]]; then
mv release/latest-mac.yml release/mac-x64/
mv release/*.blockmap release/mac-x64/ || true
mv release/*.dmg release/mac-x64/ || true
mv release/*.zip release/mac-x64/ || true
else
mv release/latest-mac.yml release/mac-arm64/
mv release/*.blockmap release/mac-arm64/ || true
mv release/*.dmg release/mac-arm64/ || true
mv release/*.zip release/mac-arm64/ || true
fi
fi
# 移动 Windows 文件
if [[ "${{ matrix.os }}" == "windows-latest" ]]; then
mv release/latest.yml release/win-x64/
mv release/*.blockmap release/win-x64/ || true
mv release/*.exe release/win-x64/ || true
fi
- name: Create Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
files: |
release/mac-x64/*
release/mac-arm64/*
release/win-x64/*
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}