veritas-kanban/.github/workflows/desktop-artifacts.yml
Brad Groux c0be0bdd8f
Clarify v5 desktop platform support boundary
Clarifies that macOS is the only v5 GA desktop release target and keeps Linux/Windows artifacts labeled as preview-only validation outputs. Closes #645.
2026-06-05 15:39:09 -05:00

150 lines
4.2 KiB
YAML

name: Desktop Artifacts
on:
pull_request:
branches: [main]
paths:
- 'desktop/**'
- 'server/**'
- 'web/**'
- 'shared/**'
- 'docs/DESKTOP-RELEASE.md'
- 'scripts/desktop-after-pack.mjs'
- 'scripts/prepare-desktop-release.mjs'
- 'package.json'
- 'pnpm-lock.yaml'
- 'pnpm-workspace.yaml'
- '.github/workflows/desktop-artifacts.yml'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
NODE_VERSION: '22'
jobs:
mac-unsigned:
name: Unsigned macOS Artifact
runs-on: macos-15
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build workspace
run: pnpm build
- name: Prepare desktop runtime payload
run: pnpm --filter @veritas-kanban/desktop package:prepare
- name: Build unsigned macOS DMG and update metadata
working-directory: desktop
env:
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
run: node ./node_modules/electron-builder/cli.js --mac dmg zip --publish never --config.mac.identity=null --config.mac.notarize=false
- name: Upload desktop artifacts
uses: actions/upload-artifact@v7
with:
name: veritas-kanban-mac-unsigned
path: |
desktop/release/*.dmg
desktop/release/*.zip
desktop/release/*.yml
desktop/release/*.blockmap
if-no-files-found: error
retention-days: 14
linux-unsigned:
name: Unsigned Linux Artifacts
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- name: Install Linux packaging tools
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends fakeroot libarchive-tools rpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build workspace
run: pnpm build
- name: Prepare desktop runtime payload
run: pnpm --filter @veritas-kanban/desktop package:prepare
- name: Build unsigned Linux preview AppImage, deb, and rpm artifacts
working-directory: desktop
env:
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
run: node ./node_modules/electron-builder/cli.js --linux AppImage deb rpm --x64 --publish never
- name: Upload Linux preview desktop artifacts
uses: actions/upload-artifact@v7
with:
name: veritas-kanban-linux-unsigned
path: |
desktop/release/*.AppImage
desktop/release/*.deb
desktop/release/*.rpm
desktop/release/*.yml
desktop/release/*.blockmap
if-no-files-found: error
retention-days: 14
windows-unsigned:
name: Unsigned Windows Artifacts
runs-on: windows-2025
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build workspace
run: pnpm build
- name: Prepare desktop runtime payload
run: pnpm --filter @veritas-kanban/desktop package:prepare
- name: Build unsigned Windows preview NSIS and ZIP artifacts
working-directory: desktop
env:
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
run: node ./node_modules/electron-builder/cli.js --win nsis zip --x64 --publish never
- name: Upload Windows preview desktop artifacts
uses: actions/upload-artifact@v7
with:
name: veritas-kanban-windows-unsigned
path: |
desktop/release/*.exe
desktop/release/*.zip
desktop/release/*.yml
desktop/release/*.blockmap
if-no-files-found: error
retention-days: 14