Skip to content

release-macos.yml

release-macos.yml #14

Workflow file for this run

name: release-macos.yml
on:
push:
tags:
- 'v*'
workflow_dispatch:
permissions:
contents: write
jobs:
build-macos:
name: Build macOS (${{ matrix.suffix }})
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-apple-darwin
suffix: x64
- target: aarch64-apple-darwin
suffix: aarch64
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Install frontend dependencies
run: npm install
- name: Build frontend
run: npm run build
- name: Generate Tauri icons
run: npx tauri icon public/icon.png
continue-on-error: true
- name: Install Tauri Rust dependencies
working-directory: src-tauri
run: cargo fetch
- name: Build Tauri app (macOS - ${{ matrix.suffix }})
run: npx tauri build --target ${{ matrix.target }} 2>&1
timeout-minutes: 30
- name: List build output
run: find src-tauri/target -name "*.dmg" -o -name "*.app" 2>/dev/null || true
continue-on-error: true
- name: Upload macOS artifacts (${{ matrix.suffix }})
uses: actions/upload-artifact@v4
with:
name: multimdreader-macos-${{ matrix.suffix }}
path: |
src-tauri/target/${{ matrix.target }}/release/bundle/dmg/*.dmg
src-tauri/target/release/bundle/dmg/*.dmg
retention-days: 30
- name: Create/Update GitHub Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
name: 'MultiMDReader ${{ github.ref_name }}'
body: 'See release assets below.'
draft: false
prerelease: true
files: |
src-tauri/target/${{ matrix.target }}/release/bundle/dmg/*.dmg
src-tauri/target/release/bundle/dmg/*.dmg
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}