mirror of
https://github.com/timeshiftsauce/CeruMusic.git
synced 2025-11-25 03:15:07 +08:00
74 lines
2.5 KiB
YAML
74 lines
2.5 KiB
YAML
name: AutoBuild # 工作流的名称
|
||
|
||
permissions:
|
||
contents: write # 给予写入仓库内容的权限
|
||
|
||
on:
|
||
push:
|
||
tags:
|
||
- 'v*' # 当推送以v开头的标签时触发此工作流
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
release:
|
||
name: build and release electron app # 任务名称
|
||
runs-on: ${{ matrix.os }} # 在matrix.os定义的操作系统上运行
|
||
strategy:
|
||
fail-fast: false # 如果一个任务失败,其他任务继续运行
|
||
matrix:
|
||
os: [windows-latest, macos-latest, ubuntu-latest] # 在Windows和macOS上运行任务
|
||
|
||
steps:
|
||
- name: Check out git repository
|
||
uses: actions/checkout@v4 # 检出代码仓库
|
||
|
||
- name: Install Node.js
|
||
uses: actions/setup-node@v4
|
||
with:
|
||
node-version: 22 # 安装Node.js 22 (这里node环境是能够运行代码的环境)
|
||
|
||
- name: Install Dependencies
|
||
run: |
|
||
npm i -g yarn
|
||
yarn # 安装项目依赖
|
||
|
||
- name: Build Electron App for windows
|
||
if: matrix.os == 'windows-latest' # 只在Windows上运行
|
||
run: yarn run build:win # 构建Windows版应用
|
||
|
||
- name: Build Electron App for macos
|
||
if: matrix.os == 'macos-latest' # 只在macOS上运行
|
||
run: |
|
||
yarn run build:mac:universal
|
||
|
||
- name: Build Electron App for linux
|
||
if: matrix.os == 'ubuntu-latest' # 只在Linux上运行
|
||
run: yarn run build:linux # 构建Linux版应用
|
||
|
||
- name: Cleanup Artifacts for Windows
|
||
if: matrix.os == 'windows-latest'
|
||
run: |
|
||
npx del-cli "dist/*" "!dist/*.exe" "!dist/*.zip" "!dist/*.yml" # 清理Windows构建产物,只保留特定文件
|
||
|
||
- name: Cleanup Artifacts for MacOS
|
||
if: matrix.os == 'macos-latest'
|
||
run: |
|
||
npx del-cli "dist/*" "!dist/(*.dmg|*.zip|latest*.yml)" # 清理macOS构建产物,只保留特定文件
|
||
|
||
- name: Cleanup Artifacts for Linux
|
||
if: matrix.os == 'ubuntu-latest'
|
||
run: |
|
||
npx del-cli "dist/*" "!dist/(*.AppImage|*.deb|*.snap|latest*.yml)" # 清理Linux构建产物,只保留特定文件
|
||
|
||
- name: upload artifacts
|
||
uses: actions/upload-artifact@v4
|
||
with:
|
||
name: ${{ matrix.os }}
|
||
path: dist # 上传构建产物作为工作流artifact
|
||
|
||
- name: release
|
||
uses: softprops/action-gh-release@v1
|
||
with:
|
||
files: 'dist/**' # 将dist目录下所有文件添加到release
|
||
body: ${{ github.event.head_commit.message }} # 自动将commit message写入release描述
|