Files
Nekosonic-Music/.github/workflows/release.yml
2026-05-16 02:02:36 +08:00

80 lines
2.1 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 \
libasound2-dev \
libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
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