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.0-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<> $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