dragon-wind-desktop/.github/workflows/build.yml

91 lines
2.5 KiB
YAML

name: Build Dragon Wind Desktop
on:
push:
branches: [main]
tags:
- 'v*'
workflow_dispatch:
jobs:
# ── Windows .exe ─────────────────────────────────────────────────────────
build-windows:
name: Windows (.exe)
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js 20
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build Windows installer
run: npm run build:win
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_IDENTITY_AUTO_DISCOVERY: false
- name: Upload .exe artifact
uses: actions/upload-artifact@v4
with:
name: dragon-wind-windows
path: dist/*.exe
retention-days: 30
# ── macOS .dmg ────────────────────────────────────────────────────────────
build-mac:
name: macOS (.dmg)
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js 20
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build macOS DMG
run: npm run build:mac
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_IDENTITY_AUTO_DISCOVERY: false
- name: Upload .dmg artifact
uses: actions/upload-artifact@v4
with:
name: dragon-wind-mac
path: dist/*.dmg
retention-days: 30
# ── Release (on tag push only) ────────────────────────────────────────────
release:
name: Create Release
needs: [build-windows, build-mac]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: write
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts/
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
files: artifacts/**/*
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}