mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-26 09:52:11 +03:00
feat(electron): add official icons and release workflow (#154)
* feat(electron): add app icons for Windows, macOS, and Linux releases - icon.ico: Windows application icon (256x256 with multiple resolutions) - icon.icns: macOS application icon bundle (16px to 1024px) - icon.png: Linux/general purpose icon (512x512) - tray-icon.png: System tray icon (32x32) Icons generated from images/omniroute.png source logo. Enables branded Electron desktop app builds for all platforms. * chore: sync package-lock.json * feat(electron): use official SVG logo and add release workflow - Regenerated app icons from public/icon-192.svg (official OmniRoute logo) - Added .github/workflows/electron-release.yml for automated builds - Icons: icon.icns (macOS), icon.ico (Windows), icon.png (Linux), tray-icon.png - Build workflow creates DMG (mac), EXE (win), AppImage (linux) on release * ci: add npm cache to electron-release workflow
This commit is contained in:
65
.github/workflows/electron-release.yml
vendored
Normal file
65
.github/workflows/electron-release.yml
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
name: Build Electron Desktop App
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build Electron (${{ matrix.os }})
|
||||
runs-on: ${{ matrix.runner }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: windows
|
||||
runner: windows-latest
|
||||
target: win
|
||||
- os: macos
|
||||
runner: macos-latest
|
||||
target: mac
|
||||
- os: linux
|
||||
runner: ubuntu-latest
|
||||
target: linux
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 22
|
||||
cache: npm
|
||||
|
||||
- name: Cache node_modules
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: node_modules
|
||||
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-node-
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Build Next.js standalone
|
||||
run: npm run build
|
||||
|
||||
- name: Install Electron dependencies
|
||||
working-directory: electron
|
||||
run: npm ci
|
||||
|
||||
- name: Build Electron for ${{ matrix.target }}
|
||||
working-directory: electron
|
||||
run: npm run build:${{ matrix.target }}
|
||||
|
||||
- name: Upload release assets
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
files: electron/dist-electron/**/*
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -105,3 +105,4 @@ app.__qa_backup/
|
||||
|
||||
# Electron (subproject dependency lock)
|
||||
electron/package-lock.json
|
||||
icon.iconset/
|
||||
|
||||
BIN
electron/assets/icon.icns
Normal file
BIN
electron/assets/icon.icns
Normal file
Binary file not shown.
BIN
electron/assets/icon.ico
Normal file
BIN
electron/assets/icon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 138 KiB |
BIN
electron/assets/icon.png
Normal file
BIN
electron/assets/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.1 KiB |
BIN
electron/assets/tray-icon.png
Normal file
BIN
electron/assets/tray-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 713 B |
Reference in New Issue
Block a user