Files
backspace/.github/workflows/release.yml
T

65 lines
1.5 KiB
YAML

name: Release Desktop
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
# macOS — universal build (arm64 + x64) on Apple Silicon runner
- os: macos-latest
args: --mac --arm64 --x64
# Windows — x64 + arm64 on x64 runner
- os: windows-latest
args: --win --x64 --arm64
# Linux — x64 on x64 runner
- os: ubuntu-latest
args: --linux --x64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Linux build dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libx11-dev libxtst-dev libxt-dev libxkbcommon-dev
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build shared package
run: pnpm --filter @backspace/shared build
- name: Compile desktop TypeScript
working-directory: packages/desktop
run: pnpm exec tsc
- name: Build and publish desktop app
working-directory: packages/desktop
run: pnpm exec electron-builder ${{ matrix.args }} --publish always
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}