Skip to content

Fix non-macOS release packaging #13

Fix non-macOS release packaging

Fix non-macOS release packaging #13

Workflow file for this run

name: Build & Release
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
tag:
description: 'Release tag (e.g. v2.1.3-beta)'
required: true
default: 'v2.2.2'
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- name: Verify renderer types
run: npm run lint
- name: Verify Electron types
run: npx tsc -p electron/tsconfig.json --noEmit
- name: Run tests
run: npm test
- name: Build application bundles
run: npm run build
build-linux:
needs: verify
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- name: Install Linux build dependencies
run: sudo apt-get install -y rpm fakeroot dpkg
- name: Build application bundles
run: npm run build
- name: Package Linux targets
run: npx electron-builder --linux AppImage deb --x64 --publish never
- uses: actions/upload-artifact@v4
with:
name: linux-packages
path: |
release/*.AppImage
release/*.deb
build-windows:
needs: verify
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- name: Build application bundles
run: npm run build
- name: Package Windows
run: npx electron-builder --win nsis --x64 --publish never
- uses: actions/upload-artifact@v4
with:
name: windows-installer
path: release/*.exe
publish-release:
needs: [build-linux, build-windows]
if: needs.build-linux.result == 'success' && needs.build-windows.result == 'success'
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
with:
path: release-artifacts
merge-multiple: true
- name: Resolve tag name
id: tag
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "name=${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT
else
echo "name=${{ github.ref_name }}" >> $GITHUB_OUTPUT
fi
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.tag.outputs.name }}
name: "${{ steps.tag.outputs.name }}"
body: |
macOS One-Click ${{ steps.tag.outputs.name }}
This release publishes verified Windows and Linux packages only.
Included assets:
- Windows NSIS installer
- Linux AppImage
- Linux Debian package
Not included:
- macOS packaged build
Notes:
- The app's destructive flash safety, BIOS gating, EFI validation, and tokenized authorization are unchanged.
- This release fixes the Electron package entry so published Windows/Linux packages contain the correct main-process bootstrap.
files: release-artifacts/**/*
draft: false
prerelease: false
overwrite: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}