Skip to content

release: v0.9.8

release: v0.9.8 #42

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 dist:mac
- 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 dist:win
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: windows-x64
path: release/**/*
if-no-files-found: error
linux:
name: Linux x64 AppImage
runs-on: ubuntu-22.04
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 AppImage bundle
env:
CSC_IDENTITY_AUTO_DISCOVERY: "false"
run: npm run dist:linux
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: linux-x64-appimage
path: release/**/*
if-no-files-found: error
release:
name: Publish GitHub Release
runs-on: ubuntu-latest
needs:
- macos
- windows
- linux
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 "*.AppImage" -o \
-name "*.AppImage.blockmap" -o \
-name "latest.yml" -o \
-name "latest-linux.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/*