Skip to content
Draft
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
15 changes: 9 additions & 6 deletions .github/workflows/auto-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,22 @@ jobs:
include:
- label: windows
os: blacksmith-4vcpu-windows-2025
builder_args: "--win nsis portable"
package_script: package:ci -- --win nsis portable
- label: macos-x64
os: macos-latest
builder_args: "--mac dmg zip --x64"
package_script: package:ci -- --mac dmg zip --x64
- label: macos-arm64
os: macos-latest
builder_args: "--mac dmg zip --arm64"
package_script: package:ci -- --mac dmg zip --arm64
- label: macos-catalina-x64
os: macos-latest
package_script: package:mac:catalina:ci
- label: linux-x64
os: blacksmith-4vcpu-ubuntu-2404
builder_args: "--linux AppImage deb --x64"
package_script: package:ci -- --linux AppImage deb --x64
- label: linux-arm64
os: blacksmith-4vcpu-ubuntu-2404-arm
builder_args: "--linux AppImage deb --arm64"
package_script: package:ci -- --linux AppImage deb --arm64

defaults:
run:
Expand Down Expand Up @@ -93,7 +96,7 @@ jobs:
run: npm run build

- name: Package installers
run: npx electron-builder --publish never ${{ matrix.builder_args }}
run: npm run ${{ matrix.package_script }}

- name: Upload artifacts
uses: actions/upload-artifact@v4
Expand Down
15 changes: 9 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,19 +101,22 @@ jobs:
include:
- label: windows
os: blacksmith-4vcpu-windows-2025
builder_args: "--win nsis portable"
package_script: package:ci -- --win nsis portable
- label: macos-x64
os: macos-latest
builder_args: "--mac dmg zip --x64"
package_script: package:ci -- --mac dmg zip --x64
- label: macos-arm64
os: macos-latest
builder_args: "--mac dmg zip --arm64"
package_script: package:ci -- --mac dmg zip --arm64
- label: macos-catalina-x64
os: macos-latest
package_script: package:mac:catalina:ci
- label: linux-x64
os: blacksmith-4vcpu-ubuntu-2404
builder_args: "--linux AppImage deb --x64"
package_script: package:ci -- --linux AppImage deb --x64
- label: linux-arm64
os: blacksmith-4vcpu-ubuntu-2404-arm
builder_args: "--linux AppImage deb --arm64"
package_script: package:ci -- --linux AppImage deb --arm64

defaults:
run:
Expand Down Expand Up @@ -169,7 +172,7 @@ jobs:
run: npm run build

- name: Package installers
run: npx electron-builder --publish never ${{ matrix.builder_args }}
run: npm run ${{ matrix.package_script }}

- name: Upload artifacts
uses: actions/upload-artifact@v4
Expand Down
37 changes: 29 additions & 8 deletions docs/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ npm run dev
npm run typecheck
npm run build
npm run dist
npm run dist:mac:catalina
```

Directly inside `opennow-stable/`:
Expand All @@ -37,6 +38,8 @@ npm run typecheck
npm run build
npm run dist
npm run dist:signed
npm run dist:mac:catalina
npm run dist:mac:catalina:signed
```

## Workspace Layout
Expand Down Expand Up @@ -138,6 +141,20 @@ cd opennow-stable
npm run dist:signed
```

Catalina-compatible legacy macOS packages:

```bash
cd opennow-stable
npm run dist:mac:catalina
```

Signed Catalina-compatible packages:

```bash
cd opennow-stable
npm run dist:mac:catalina:signed
```

## CI And Releases

The repository includes two main GitHub Actions workflows:
Expand All @@ -147,18 +164,22 @@ The repository includes two main GitHub Actions workflows:

Current build matrix:

| Target | Output |
| --- | --- |
| Windows | NSIS installer, portable executable |
| macOS x64 | `dmg`, `zip` |
| macOS arm64 | `dmg`, `zip` |
| Linux x64 | `AppImage`, `deb` |
| Linux ARM64 | `AppImage`, `deb` |
| Target | Packaging path | Output |
| --- | --- | --- |
| Windows | Main Electron line | NSIS installer, portable executable |
| macOS x64 | Main Electron line | `OpenNOW-v${version}-mac-x64.{dmg,zip}` |
| macOS arm64 | Main Electron line | `OpenNOW-v${version}-mac-arm64.{dmg,zip}` |
| macOS Catalina x64 | Legacy Electron 27 packaging config with `minimumSystemVersion: 10.15.0` | `OpenNOW-v${version}-mac-catalina-x64.{dmg,zip}` |
| Linux x64 | Main Electron line | `AppImage`, `deb` |
| Linux ARM64 | Main Electron line | `AppImage`, `deb` |

The Catalina lane reuses the same compiled application source and electron-vite build output. Only the packaging step switches to `electron-builder.catalina.json`, which pins `electronVersion` to `27.3.11` and sets the macOS minimum system version explicitly for Catalina-compatible distribution.

## Notes For Contributors

- The active app is the Electron client. If you see older references to previous implementations, prefer `opennow-stable/`.
- Root-level npm scripts are convenience wrappers around the `opennow-stable` workspace.
- Root-level npm scripts are convenience wrappers around the `opennow-stable` workspace, including the Catalina-specific `dist:mac:catalina` packaging command.
- `opennow-stable/electron-builder.json` is the default packaging config for current Electron builds; `opennow-stable/electron-builder.catalina.json` is the dedicated legacy macOS packaging config.
- Before opening a PR, run `npm run typecheck` and `npm run build`.

For contribution workflow details, see [`.github/CONTRIBUTING.md`](../.github/CONTRIBUTING.md).
52 changes: 52 additions & 0 deletions opennow-stable/electron-builder.base.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"appId": "com.zortos.opennow.stable",
"productName": "OpenNOW",
"publish": [
{
"provider": "github",
"owner": "OpenCloudGaming",
"repo": "OpenNOW"
}
],
"icon": "../logo.png",
"npmRebuild": false,
"nodeGypRebuild": false,
"buildDependenciesFromSource": false,
"directories": {
"output": "dist-release"
},
"files": [
"dist/**",
"dist-electron/**",
"package.json"
],
"asar": true,
"win": {
"target": [
"nsis",
"portable"
]
},
"nsis": {
"artifactName": "OpenNOW-v${version}-setup-${arch}.${ext}"
},
"portable": {
"artifactName": "OpenNOW-v${version}-portable-${arch}.${ext}"
},
"mac": {
"target": [
"dmg",
"zip"
],
"category": "public.app-category.games"
},
"linux": {
"target": [
"AppImage",
"deb"
],
"category": "Game",
"maintainer": "zortos293 <zortos293@users.noreply.github.com>",
"artifactName": "OpenNOW-v${version}-linux-${arch}.${ext}"
}
}
13 changes: 13 additions & 0 deletions opennow-stable/electron-builder.catalina.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"extends": "./electron-builder.base.json",
"electronVersion": "27.3.11",
"mac": {
"target": [
"dmg",
"zip"
],
"category": "public.app-category.games",
"minimumSystemVersion": "10.15.0",
"artifactName": "OpenNOW-v${version}-mac-catalina-x64.${ext}"
}
}
11 changes: 11 additions & 0 deletions opennow-stable/electron-builder.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"extends": "./electron-builder.base.json",
"mac": {
"target": [
"dmg",
"zip"
],
"category": "public.app-category.games",
"artifactName": "OpenNOW-v${version}-mac-${arch}.${ext}"
}
}
63 changes: 8 additions & 55 deletions opennow-stable/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,14 @@
"dev": "electron-vite dev",
"build": "electron-vite build",
"preview": "electron-vite preview",
"dist": "npm run build && cross-env CSC_IDENTITY_AUTO_DISCOVERY=false electron-builder",
"dist:signed": "npm run build && electron-builder",
"package:ci": "cross-env CSC_IDENTITY_AUTO_DISCOVERY=false electron-builder --publish never --config electron-builder.json",
"package:signed": "electron-builder --config electron-builder.json",
"package:mac:catalina:ci": "cross-env CSC_IDENTITY_AUTO_DISCOVERY=false electron-builder --publish never --config electron-builder.catalina.json --mac dmg zip --x64",
"package:mac:catalina:signed": "electron-builder --config electron-builder.catalina.json --mac dmg zip --x64",
"dist": "npm run build && npm run package:ci",
"dist:signed": "npm run build && npm run package:signed",
"dist:mac:catalina": "npm run build && npm run package:mac:catalina:ci",
"dist:mac:catalina:signed": "npm run build && npm run package:mac:catalina:signed",
"typecheck": "tsc --noEmit -p tsconfig.node.json && tsc --noEmit -p tsconfig.json",
"test": "tsx --test src/renderer/src/gfn/inputProtocol.test.ts"
},
Expand All @@ -45,58 +51,5 @@
"tsx": "^4.20.6",
"typescript": "^6.0.2",
"vite": "^7.3.1"
},
"build": {
"appId": "com.zortos.opennow.stable",
"productName": "OpenNOW",
"publish": [
{
"provider": "github",
"owner": "OpenCloudGaming",
"repo": "OpenNOW"
}
],
"icon": "../logo.png",
"npmRebuild": false,
"nodeGypRebuild": false,
"buildDependenciesFromSource": false,
"directories": {
"output": "dist-release"
},
"files": [
"dist/**",
"dist-electron/**",
"package.json"
],
"asar": true,
"win": {
"target": [
"nsis",
"portable"
]
},
"nsis": {
"artifactName": "OpenNOW-v${version}-setup-${arch}.${ext}"
},
"portable": {
"artifactName": "OpenNOW-v${version}-portable-${arch}.${ext}"
},
"mac": {
"target": [
"dmg",
"zip"
],
"category": "public.app-category.games",
"artifactName": "OpenNOW-v${version}-mac-${arch}.${ext}"
},
"linux": {
"target": [
"AppImage",
"deb"
],
"category": "Game",
"maintainer": "zortos293 <zortos293@users.noreply.github.com>",
"artifactName": "OpenNOW-v${version}-linux-${arch}.${ext}"
}
}
}
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
"build": "npm --prefix opennow-stable run build",
"typecheck": "npm --prefix opennow-stable run typecheck",
"dist": "npm --prefix opennow-stable run dist",
"dist:signed": "npm --prefix opennow-stable run dist:signed"
"dist:signed": "npm --prefix opennow-stable run dist:signed",
"dist:mac:catalina": "npm --prefix opennow-stable run dist:mac:catalina",
"dist:mac:catalina:signed": "npm --prefix opennow-stable run dist:mac:catalina:signed"
}
}
Loading