Skip to content

release: v0.3.6

release: v0.3.6 #23

Workflow file for this run

name: Build Desktop
on:
workflow_dispatch:
push:
tags:
- "v*"
permissions:
contents: write
jobs:
macos:
name: macOS (arm64 + x64)
runs-on: macos-15
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install Pillow
run: python -m pip install --upgrade pip pillow
- name: Install dependencies
run: npm ci
- name: Build app bundles
env:
CSC_IDENTITY_AUTO_DISCOVERY: "false"
run: |
npm run build:desktop
npm run rebuild:native:electron
npx electron-builder --mac --arm64 --x64 --publish never
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: macos
path: release/**/*
if-no-files-found: error
windows:
name: Windows x64
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install Pillow
run: python -m pip install --upgrade pip pillow
- name: Install dependencies
run: npm ci
- name: Build app bundles
env:
CSC_IDENTITY_AUTO_DISCOVERY: "false"
run: |
npm run build:desktop
npm run rebuild:native:electron
npx electron-builder --win --x64 --publish never
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: windows-x64
path: release/**/*
if-no-files-found: error
release:
name: Publish GitHub Release
runs-on: ubuntu-latest
needs:
- macos
- windows
if: startsWith(github.ref_name, 'v')
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: release-assets
- name: Prepare unique release assets
shell: bash
run: |
set -euo pipefail
mkdir -p release-upload
while IFS= read -r file; do
base="$(basename "$file")"
if [ ! -f "release-upload/$base" ]; then
cp "$file" "release-upload/$base"
fi
done < <(find release-assets -type f \( \
-name "*.dmg" -o \
-name "*.dmg.blockmap" -o \
-name "*Setup*.exe" -o \
-name "*Setup*.exe.blockmap" -o \
-name "latest.yml" -o \
-name "latest-mac.yml" -o \
-name "latest-mac-arm64.yml" \
\) | sort)
ls -la release-upload
test -n "$(ls -A release-upload)"
- name: Publish release assets
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
generate_release_notes: true
overwrite_files: true
files: |
release-upload/*