mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
fc1ef4ddb3
Tauri desktop artifacts were always named with hardcoded version 0.1.0 (from tauri.conf.json) instead of the actual release version. Extract the version from the git tag and update tauri.conf.json and Cargo.toml before building.
112 lines
3.1 KiB
YAML
112 lines
3.1 KiB
YAML
name: Tauri Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*"
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build-and-release:
|
|
name: Release (${{ matrix.platform }})
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- platform: macos-latest
|
|
target: aarch64-apple-darwin
|
|
- platform: macos-latest
|
|
target: x86_64-apple-darwin
|
|
- platform: ubuntu-22.04
|
|
target: x86_64-unknown-linux-gnu
|
|
- platform: windows-latest
|
|
target: x86_64-pc-windows-msvc
|
|
|
|
runs-on: ${{ matrix.platform }}
|
|
timeout-minutes: 60
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Extract version from tag
|
|
id: version
|
|
shell: bash
|
|
run: |
|
|
TAG="${GITHUB_REF_NAME}"
|
|
VERSION="${TAG#v}"
|
|
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
|
echo "Resolved version: $VERSION"
|
|
|
|
- name: Sync version to tauri.conf.json and Cargo.toml
|
|
shell: bash
|
|
run: |
|
|
VERSION="${{ steps.version.outputs.version }}"
|
|
TAURI_CONF="apps/desktop/src-tauri/tauri.conf.json"
|
|
CARGO_TOML="apps/desktop/src-tauri/Cargo.toml"
|
|
|
|
node -e "
|
|
const fs = require('fs');
|
|
const conf = JSON.parse(fs.readFileSync('$TAURI_CONF', 'utf8'));
|
|
conf.version = '$VERSION';
|
|
fs.writeFileSync('$TAURI_CONF', JSON.stringify(conf, null, 2) + '\n');
|
|
"
|
|
|
|
sed -i.bak "s/^version = \".*\"/version = \"$VERSION\"/" "$CARGO_TOML"
|
|
rm -f "$CARGO_TOML.bak"
|
|
|
|
echo "Updated $TAURI_CONF version to $VERSION"
|
|
echo "Updated $CARGO_TOML version to $VERSION"
|
|
|
|
- uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 10
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: lts/*
|
|
cache: pnpm
|
|
|
|
- name: Install Rust stable
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
targets: ${{ matrix.target }}
|
|
|
|
- name: Rust cache
|
|
uses: swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: apps/desktop/src-tauri -> target
|
|
|
|
- name: Install Linux dependencies
|
|
if: matrix.platform == 'ubuntu-22.04'
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
libwebkit2gtk-4.1-dev \
|
|
libappindicator3-dev \
|
|
librsvg2-dev \
|
|
patchelf
|
|
|
|
- name: Install JS dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Build and release Tauri app
|
|
uses: tauri-apps/tauri-action@v0
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
projectPath: apps/desktop
|
|
args: --target ${{ matrix.target }}
|
|
tauriScript: pnpm tauri
|
|
tagName: ${{ github.ref_name }}
|
|
releaseName: "Memoh Desktop ${{ github.ref_name }}"
|
|
releaseBody: "See the [full changelog](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for details."
|
|
releaseDraft: true
|
|
prerelease: false
|