Skip to content

Commit

Permalink
refactor: move gui to own folder
Browse files Browse the repository at this point in the history
  • Loading branch information
bambanah committed Aug 26, 2024
1 parent af4e2ae commit 9d2c8a6
Show file tree
Hide file tree
Showing 12 changed files with 168 additions and 86 deletions.
5 changes: 5 additions & 0 deletions .changeset/blue-boxes-admire.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"deemix-gui": minor
---

Monorepo refactor
37 changes: 37 additions & 0 deletions .github/workflows/build-publish-electron.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Build and Publish Electron

on:
push:
tags:
- "deemix-gui@*"
pull_request:
branches:
- main

concurrency: ${{ github.workflow }}-${{ github.ref }}

env:
HUSKY: 0

jobs:
build-publish-electron:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]

steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm

- name: Build/release Electron app
uses: samuelmeuli/action-electron-builder@v1
with:
package_root: "./gui"
github_token: ${{ secrets.GITHUB_TOKEN }}
release: ${{ startsWith(github.ref, 'refs/tags/deemix-gui@') }}
1 change: 0 additions & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
pnpm reset-version
npx lint-staged
2 changes: 1 addition & 1 deletion index.js → gui/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ const argv = yargs(hideBin(process.argv)).options({
host: { type: "string", default: "0.0.0.0" },
dev: { type: "boolean", default: false },
}).argv;
const { DeemixServer } = require("./server/dist/app.js");
const { DeemixServer } = require("../server/dist/app.js");

const PORT = process.env.DEEMIX_SERVER_PORT || argv.port;
process.env.DEEMIX_SERVER_PORT = PORT;
Expand Down
91 changes: 91 additions & 0 deletions gui/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
{
"name": "deemix-gui",
"version": "0.0.0",
"private": true,
"description": "A hybrid monorepo that wraps deemix-webui and lets you use the deemix-js library",
"main": "index.js",
"author": "Bambanah",
"license": "GPL-3.0-only",
"scripts": {
"dev": "electron . --dev",
"build": "pnpm set-version && electron-builder && pnpm reset-version",
"build:server": "pnpm -C server build",
"build:webui": "pnpm -C webui build",
"dist": "pnpm set-version && electron-builder && pnpm reset-version",
"dist:dir": "pnpm set-version && pnpm predist && electron-builder --dir && pnpm reset-version",
"lint": "run-s lint:*",
"lint:es": "eslint .",
"lint:ts": "pnpm -C server lint:ts",
"set-version": "node scripts/set-version.mjs",
"reset-version": "node scripts/reset-version.mjs"
},
"devDependencies": {
"electron": "^22.0.0",
"electron-builder": "^23.6.0"
},
"dependencies": {
"electron-context-menu": "^3.6.1",
"electron-window-state-manager": "^0.3.2",
"yargs": "^17.6.2"
},
"build": {
"appId": "app.deemix.gui",
"productName": "deemix-gui",
"files": [
"index.js",
"preload.js",
"server/dist/**/*",
"webui/public/**/*",
"build/**/*",
"package.json"
],
"mac": {
"target": [
{
"target": "dmg",
"arch": "x64"
},
{
"target": "dmg",
"arch": "arm64"
}
],
"artifactName": "deemix-gui_${arch}.${ext}",
"category": "public.app-category.music"
},
"win": {
"target": [
{
"target": "nsis",
"arch": "x64"
},
{
"target": "portable",
"arch": "x64"
}
]
},
"linux": {
"target": [
"appimage",
"deb"
],
"artifactName": "deemix-gui.${ext}",
"category": "AudioVideo,Audio",
"icon": "build/icon.icns"
},
"nsis": {
"artifactName": "${productName}_setup.${ext}",
"oneClick": false,
"license": "LICENSE.txt",
"allowToChangeInstallationDirectory": true,
"uninstallDisplayName": "${productName}",
"deleteAppDataOnUninstall": true
},
"portable": {
"artifactName": "${productName}.${ext}",
"requestExecutionLevel": "user"
}
},
"packageManager": "[email protected]+sha512.faf344af2d6ca65c4c5c8c2224ea77a81a5e8859cbc4e06b1511ddce2f0151512431dd19e6aff31f2c6a8f5f2aced9bd2273e1fed7dd4de1868984059d2c4247"
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
73 changes: 4 additions & 69 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,15 @@
"license": "GPL-3.0-only",
"scripts": {
"dev": "pnpm -C webui dev",
"build": "run-s build:*",
"dev:gui": "pnpm -C gui dev",
"build": "run-s build:server build:webui",
"build:server": "pnpm -C server build",
"build:webui": "pnpm -C webui build",
"start-server": "pnpm -C server start",
"predist": "pnpm build",
"start": "electron . --dev",
"dist": "pnpm set-version && electron-builder && pnpm reset-version",
"dist:dir": "pnpm set-version && pnpm predist && electron-builder --dir && pnpm reset-version",
"build:gui": "pnpm build && pnpm -C gui build",
"start:server": "pnpm -C server start",
"lint": "run-s lint:*",
"lint:es": "eslint .",
"lint:ts": "pnpm -C server lint:ts",
"set-version": "node scripts/set-version.mjs",
"reset-version": "node scripts/reset-version.mjs",
"prepare": "husky"
},
"devDependencies": {
Expand All @@ -39,68 +35,7 @@
"typescript": "^4.9.5"
},
"dependencies": {
"electron-context-menu": "^3.6.1",
"electron-window-state-manager": "^0.3.2",
"yargs": "^17.6.2"
},
"build": {
"appId": "app.deemix.gui",
"productName": "deemix-gui",
"files": [
"index.js",
"preload.js",
"server/dist/**/*",
"webui/public/**/*",
"build/**/*",
"package.json"
],
"mac": {
"target": [
{
"target": "dmg",
"arch": "x64"
},
{
"target": "dmg",
"arch": "arm64"
}
],
"artifactName": "deemix-gui_${arch}.${ext}",
"category": "public.app-category.music"
},
"win": {
"target": [
{
"target": "nsis",
"arch": "x64"
},
{
"target": "portable",
"arch": "x64"
}
]
},
"linux": {
"target": [
"appimage",
"deb"
],
"artifactName": "deemix-gui.${ext}",
"category": "AudioVideo,Audio",
"icon": "build/icon.icns"
},
"nsis": {
"artifactName": "${productName}_setup.${ext}",
"oneClick": false,
"license": "LICENSE.txt",
"allowToChangeInstallationDirectory": true,
"uninstallDisplayName": "${productName}",
"deleteAppDataOnUninstall": true
},
"portable": {
"artifactName": "${productName}.${ext}",
"requestExecutionLevel": "user"
}
},
"packageManager": "[email protected]+sha512.faf344af2d6ca65c4c5c8c2224ea77a81a5e8859cbc4e06b1511ddce2f0151512431dd19e6aff31f2c6a8f5f2aced9bd2273e1fed7dd4de1868984059d2c4247"
}
44 changes: 29 additions & 15 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pnpm-workspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ packages:
- "server"
- "deemix"
- "deezer-js"
- "gui"

0 comments on commit 9d2c8a6

Please sign in to comment.