Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 29 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,27 @@ on:
push:
tags:
- "v*"
workflow_dispatch:

jobs:
release:
runs-on: windows-latest
build:
strategy:
fail-fast: false
matrix:
os:
- name: Linux amd64
image: ubuntu-24.04
- name: Linux arm64
image: ubuntu-24.04-arm
- name: macOS
image: macos-latest
- name: Windows
image: windows-latest
runs-on: ${{ matrix.os.image }}
name: Build (${{ matrix.os.name }})
permissions:
contents: write
packages: write

steps:
- name: Checkout code
Expand All @@ -18,10 +35,18 @@ jobs:
with:
node-version: "24"

- name: Install Flatpak tooling
if: startsWith(matrix.os.name, 'Linux')
run: |
sudo apt-get update
sudo apt-get install -y flatpak flatpak-builder elfutils
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install -y --user flathub org.freedesktop.Platform//23.08 org.freedesktop.Sdk//23.08 org.electronjs.Electron2.BaseApp//23.08

- name: Install dependencies
run: npm install
run: npm ci

- name: Build and publish
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm run publish
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,26 @@ This project is not affliated with the RomM project. It is a third-party client
- Sync save data between local storage and RomM server
- Support for multiple emulators (e.g., PPSSPP, Dolphin...)

## Downloads

Pre-built packages are published on the [releases page](https://github.com/chaun14/romm-client/releases):

- **Windows** — NSIS installer (`.exe`)
- **macOS** — disk image (`.dmg`)
- **Linux** — AppImage (`.AppImage`) and Flatpak (`.flatpak`)

## Building from source

```bash
npm install
npm run dist:linux # builds both AppImage and Flatpak
npm run dist:win # builds the Windows installer
npm run dist:mac # builds the macOS disk image
```

Building the Flatpak locally requires `flatpak`, `flatpak-builder` and the
`org.electronjs.Electron2.BaseApp//23.08` runtime to be installed.

## Supported Emulators

- PPSSPP (PlayStation Portable)
Expand Down
26 changes: 24 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"dist:win": "npm run build && electron-builder --win",
"dist:mac": "npm run build && electron-builder --mac",
"dist:linux": "npm run build && electron-builder --linux",
"publish": "npm run build && electron-builder --win --publish always"
"publish": "npm run build && electron-builder --publish always"
},
"keywords": [
"romm",
Expand Down Expand Up @@ -79,7 +79,29 @@
"target": "dmg"
},
"linux": {
"target": "AppImage"
"target": [
"AppImage",
"flatpak"
],
"category": "Game",
"icon": "build/icon.png",
"artifactName": "RomMClient-${version}-${arch}.${ext}",
"synopsis": "Desktop client for the RomM API",
"syncDesktopName": true
},
"flatpak": {
"runtimeVersion": "23.08",
"baseVersion": "23.08",
"branch": "stable",
"finishArgs": [
"--share=ipc",
"--socket=x11",
"--socket=wayland",
"--socket=pulseaudio",
"--share=network",
"--device=all",
"--filesystem=home"
]
},
"nsis": {
"oneClick": false,
Expand Down