Skip to content

Build Windows installer (experimental) #6

Build Windows installer (experimental)

Build Windows installer (experimental) #6

Workflow file for this run

name: Build Windows installer (experimental)
# Produces an actual Windows installer (.msi + NSIS .exe) via `tauri build` and
# uploads it as a workflow artifact.
#
# ⚠️ Copyosity is a macOS-native app. On Windows every native feature (the
# NSPanel UI, clipboard monitor, paste injection, Vision OCR, Apple Events) is an
# inert stub, so the produced installer is a NON-FUNCTIONAL SHELL — it installs
# and launches but does nothing useful. This exists only to have a downloadable
# Windows binary while a real port is pending.
on:
workflow_dispatch:
push:
tags:
- "win-v*"
jobs:
build:
name: tauri build (windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@v5
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: 24
- name: Setup Rust (stable)
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
~/.cargo/git
src-tauri/target
key: windows-build-${{ hashFiles('src-tauri/Cargo.lock') }}
restore-keys: windows-build-
- name: Install frontend dependencies
run: npm ci
- name: Build (Tauri bundle)
env:
# Signs the updater artifacts (.sig) so auto-update can verify them.
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ""
run: npm run tauri build
- name: Upload installers
uses: actions/upload-artifact@v5
with:
name: copyosity-windows-installers
if-no-files-found: error
path: |
src-tauri/target/release/bundle/msi/*.msi
src-tauri/target/release/bundle/nsis/*.exe