From 750617a04ab525c772a8f852450a10fa73ac4a8a Mon Sep 17 00:00:00 2001 From: Zac Gaetano Date: Wed, 8 Apr 2026 08:06:44 -0400 Subject: [PATCH] =?UTF-8?q?ci:=20add=20GitHub=20Actions=20workflow=20?= =?UTF-8?q?=E2=80=94=20Windows=20.exe=20and=20macOS=20.dmg=20builds?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 91 +++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..a21c659 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,91 @@ +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 }}