Files
Nekosonic-Music/.github/workflow/release.yml
2026-05-16 00:41:49 +08:00

70 lines
2.0 KiB
YAML

name: Release with Updater
on:
push:
tags:
- 'v*'
jobs:
publish:
strategy:
matrix:
include:
- os: ubuntu-latest
platform: linux
- os: windows-latest
platform: windows
- os: macos-latest
platform: macos
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Install Linux dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential \
libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev
- name: Install npm dependencies
run: npm install
- name: Extract release notes for version
id: release_notes
shell: bash
run: |
VERSION="${{ github.ref_name }}"
# 从 CHANGELOG.md 中提取 "## v0.3.0" 到下一个 "## " 之间的内容
NOTES=$(awk -v ver="## $VERSION" '$0 ~ ver {flag=1; next} /^## / && flag {exit} flag' CHANGELOG.md)
# 如果没有提取到内容,使用默认文本
if [ -z "$NOTES" ]; then
NOTES="See CHANGELOG.md for details."
fi
# 将多行内容写入环境变量(GitHub Actions 支持多行输入)
{
echo 'NOTES<<EOF'
echo "$NOTES"
echo EOF
} >> $GITHUB_ENV
- name: Build and publish with Tauri Action
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
with:
tagName: ${{ github.ref_name }}
releaseName: 'v__VERSION__'
releaseBody: ${{ env.NOTES }}
releaseDraft: false
prerelease: false