Skip to content

fix build3

fix build3 #44

Workflow file for this run

name: Build and Release by Platform

Check failure on line 1 in .github/workflows/release.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/release.yml

Invalid workflow file

(Line: 197, Col: 1): Unexpected value 'release'
on:
push:
tags:
- "v*" # 当推送标签(如 v1.0.0)时触发
workflow_dispatch: # 手动触发
jobs:
# 针对 Ubuntu 构建
build-linux:
name: Build for Linux
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 20.18.0
cache: npm
- name: Install Dependencies
run: npm install
- name: Build Linux Package
run: npm run make
- name: Debug Output Directory
run: ls -R out/make
- name: Find .deb, .rpm and .zip files
id: find_packages
run: |
# 查找文件路径
DEB_FILE=$(find out/make -type f -name "*.deb" | head -n 1)
echo $DEB_FILE
RPM_FILE=$(find out/make -type f -name "*.rpm" | head -n 1)
echo $RPM_FILE
LINUX_ZIP_FILE=$(find out/make -type f -name "*.zip" | head -n 1)
echo $LINUX_ZIP_FILE
# 输出路径供后续步骤使用
echo "DEB_FILE=$DEB_FILE" >> $GITHUB_ENV
echo "RPM_FILE=$RPM_FILE" >> $GITHUB_ENV
echo "LINUX_ZIP_FILE=$LINUX_ZIP_FILE" >> $GITHUB_ENV
- name: Upload .deb Package
uses: actions/upload-artifact@v4
if: ${{ env.DEB_FILE }}
with:
name: linux-deb-package
path: ${{ env.DEB_FILE }}
- name: Upload .rpm Package
uses: actions/upload-artifact@v4
if: ${{ env.RPM_FILE }}
with:
name: linux-rpm-package
path: ${{ env.RPM_FILE }}
- name: Upload .zip Package
uses: actions/upload-artifact@v4
if: ${{ env.LINUX_ZIP_FILE }}
with:
name: linux-zip-package
path: ${{ env.LINUX_ZIP_FILE }}
# 针对 Windows 构建
build-windows:
name: Build for Windows
runs-on: windows-2019
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 20.18.0
cache: npm
- name: Install Dependencies
run: npm install
- name: Build Windows Package
run: npm run make
- name: Debug Output Directory
run: ls -R out/make
- name: Find exe and zip files
id: find_packages
run: |
# 使用 PowerShell 命令查找 .exe 文件
$EXE_FILE = Get-ChildItem -Path "out/make" -Recurse -Filter "*.exe" | Select-Object -First 1
echo "EXE_FILE=$($EXE_FILE.FullName)" >> $env:GITHUB_ENV
$WIN_ZIP_FILE = Get-ChildItem -Path "out/make" -Recurse -Filter "*.zip" | Select-Object -First 1
echo "WIN_ZIP_FILE=$($WIN_ZIP_FILE.FullName)" >> $env:GITHUB_ENV
- name: Upload .exe Package
uses: actions/upload-artifact@v4
if: ${{ env.EXE_FILE }}
with:
name: windows-exe-package
path: ${{ env.EXE_FILE }}
- name: Upload .zip Package
uses: actions/upload-artifact@v4
if: ${{ env.WIN_ZIP_FILE }}
with:
name: windows-zip-package
path: ${{ env.WIN_ZIP_FILE }}
# 针对 macOS 构建
build-macos:
name: Build for macOS
runs-on: macos-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 20.18.0
cache: npm
- name: Install Dependencies
run: npm install
- name: Build macOS Package
run: npm run make
- name: Debug Output Directory
run: ls -R out/make
- name: Find zip files
id: find_packages
run: |
# 查找 .zip 文件路径
ZIP_FILE=$(find out/make -type f -name "*.zip" | head -n 1)
echo $ZIP_FILE
# 输出路径供后续步骤使用
echo "ZIP_FILE=$ZIP_FILE" >> $GITHUB_ENV
- name: Upload MAC M1 ZIP Package
uses: actions/upload-artifact@v4
if: ${{ env.ZIP_FILE }}
with:
name: macos-package
path: ${{ env.ZIP_FILE }}
build-macos-intel:
name: Build for macOS intel
runs-on: macos-13
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 20.18.0
cache: npm
- name: Install Dependencies
run: npm install
- name: Build macOS Package
run: npm run make
- name: Debug Output Directory
run: ls -R out/make
- name: Find zip files
id: find_packages
run: |
# 查找 .zip 文件路径
ZIP_FILE=$(find out/make -type f -name "*.zip" | head -n 1)
echo $ZIP_FILE
# 输出路径供后续步骤使用
echo "ZIP_FILE=$ZIP_FILE" >> $GITHUB_ENV
- name: Upload MAC Intel ZIP Package
uses: actions/upload-artifact@v4
if: ${{ env.ZIP_FILE }}
with:
name: macos-intel-package
path: ${{ env.ZIP_FILE }}
# 发布到 GitHub Release
release:
name: Release Artifacts
needs: [build-linux, build-windows, build-macos, build-macos-intel]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
# ========================
# 下载所有 artifacts
# ========================
- name: Download Linux .deb Artifact
uses: actions/download-artifact@v4
with:
name: linux-deb-package
path: dist/linux
- name: Download Linux .rpm Artifact
uses: actions/download-artifact@v4
with:
name: linux-rpm-package
path: dist/linux
- name: Download Linux .zip Artifact
uses: actions/download-artifact@v4
with:
name: linux-zip-package
path: dist/linux
- name: Download Windows .exe Artifact
uses: actions/download-artifact@v4
with:
name: windows-exe-package
path: dist/windows
- name: Download Windows .zip Artifact
uses: actions/download-artifact@v4
with:
name: windows-zip-package
path: dist/windows
- name: Download macOS Artifact
uses: actions/download-artifact@v4
with:
name: macos-package
path: dist/macos
- name: Download macOS Intel Artifact
uses: actions/download-artifact@v4
with:
name: macos-intel-package
path: dist/macos-intel
- name: Check download result
run: ls -R dist
# ========================
# 创建 Release
# ========================
- name: Create Release
run: |
gh release create "${{ github.ref_name }}" \
--title "${{ github.ref_name }}" \
--notes "" \
--draft=false \
--prerelease=false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# ========================
# 上传所有文件 (自动扫描)
# ========================
- name: Upload All Artifacts
run: |
echo "Uploading Linux files..."
for file in dist/linux/*; do
echo "Uploading $file"
gh release upload "${{ github.ref_name }}" "$file"
done
echo "Uploading Windows files..."
for file in dist/windows/*; do
echo "Uploading $file"
gh release upload "${{ github.ref_name }}" "$file"
done
echo "Uploading macOS ARM files..."
for file in dist/macos/*; do
echo "Uploading $file"
gh release upload "${{ github.ref_name }}" "$file"
done
echo "Uploading macOS Intel files..."
for file in dist/macos-intel/*; do
echo "Uploading $file"
gh release upload "${{ github.ref_name }}" "$file"
done
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}