Jarian Cottingham 43114cfe3c feat: release packaging — electron-builder installers + release pipeline
- electron-builder config: AppImage/deb (linux), dmg (mac), nsis (win)
- app icon, desktopName sync, deb maintainer metadata
- move electron to devDependencies; add author/license/repo metadata
- pin @noble/hashes 1.8.0 (electron-builder 26 ESM conflict)
- .github/workflows/release.yml: tag-triggered multi-OS build + release
- scripts/publish-release.sh: upload dist/ assets to a Gitea release
- README: installation + installer build instructions
- add missing .env.example
- verified locally: AppImage + deb build, deb structure checks out,
  118 JS tests still green
2026-08-20 20:46:35 +00:00

57 lines
1.3 KiB
YAML

name: Release
on:
push:
tags: ["v*"]
permissions:
contents: write
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
args: --linux
upload: "dist/*.AppImage dist/*.deb"
- os: macos-latest
args: --mac
upload: "dist/*.dmg"
- os: windows-latest
args: --win
upload: "dist/*.exe"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npx electron-builder ${{ matrix.args }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: release-${{ matrix.os }}
path: |
${{ matrix.upload }}
publish:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
path: dist
merge-multiple: true
- name: Publish release
env:
GH_TOKEN: ${{ github.token }}
run: |
TAG="${GITHUB_REF#refs/tags/}"
gh release create "$TAG" --title "$TAG" \
--notes "MovieMapper $TAG release." \
dist/*