Skip to content

Merge pull request #69 from taroj1205/changeset-release/main #35

Merge pull request #69 from taroj1205/changeset-release/main

Merge pull request #69 from taroj1205/changeset-release/main #35

Workflow file for this run

name: Release
on:
push:
paths:
- "CHANGELOG.md"
branches:
- main
jobs:
release:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
platform: [windows-latest]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install dependencies (Windows only)
if: matrix.platform == 'windows-latest'
run: |
npm install -g pnpm
pnpm install
- name: Build the app
run: pnpm tauri build
- name: Get Release Notes
id: release-notes
shell: pwsh
run: |
# Get the latest version from CHANGELOG.md
$latestVersion = (Get-Content CHANGELOG.md | Select-String -Pattern '### .* \[v([\d\.]+)\]' | Select-Object -First 1).Matches.Groups[1].Value
# Read the corresponding MDX file
$mdxContent = Get-Content ".changelog/$latestVersion.mdx" -Raw
# Extract everything after the version header (# X.X.X)
$content = $mdxContent -split "# $latestVersion" | Select-Object -Last 1
# Clean up the content
$content = $content.Trim()
# Set output
echo "notes=$content" >> $GITHUB_OUTPUT
echo "version=$latestVersion" >> $GITHUB_OUTPUT
- name: Rename Clippr.exe
if: matrix.platform == 'windows-latest'
run: |
mv src-tauri/target/release/Clippr.exe "src-tauri/target/release/Clippr_${{ steps.release-notes.outputs.version }}.exe"
- name: Create Release
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ steps.release-notes.outputs.version }}
name: v${{ steps.release-notes.outputs.version }}
body: ${{ steps.release-notes.outputs.notes }}
files: |
src-tauri/target/release/bundle/msi/*.msi
src-tauri/target/release/bundle/nsis/*.exe
src-tauri/target/release/Clippr_${{ steps.release-notes.outputs.version }}.exe
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}