- 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
57 lines
1.3 KiB
YAML
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/*
|