Skip to content

Commit 3792aae

Browse files
authored
Merge pull request #868 from dreamteamprod/dev
Release 0.24.0
2 parents c713265 + 67ed187 commit 3792aae

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+11938
-602
lines changed

.github/dependabot.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@ updates:
99
update-types: ["version-update:semver-major"]
1010
versioning-strategy: increase
1111
target-branch: dev
12+
- package-ecosystem: "npm"
13+
directory: "/electron"
14+
schedule:
15+
interval: "daily"
16+
ignore:
17+
- dependency-name: "*"
18+
update-types: [ "version-update:semver-major" ]
19+
versioning-strategy: increase
20+
target-branch: dev
1221
- package-ecosystem: "pip"
1322
directory: "/server"
1423
schedule:

.github/labeler.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ labels:
3030
- label: "client"
3131
files:
3232
- "client/.*"
33+
- label: "client"
34+
files:
35+
- "electron/.*"
3336
- label: "server"
3437
files:
3538
- "server/.*"
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
name: Build Electron Applications
2+
3+
on:
4+
push:
5+
tags: ['v*']
6+
pull_request:
7+
branches: [main, dev]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
build-electron-renderer:
14+
name: Build Electron Renderer
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout repository
18+
uses: actions/checkout@v4
19+
20+
- name: Setup Node.js
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version: '24'
24+
cache: 'npm'
25+
cache-dependency-path: 'client/package-lock.json'
26+
27+
- name: Install dependencies
28+
run: |
29+
cd client
30+
npm ci
31+
32+
- name: Build Electron renderer
33+
run: |
34+
cd client
35+
BUILD_TARGET=electron npm run build
36+
37+
- name: Upload Electron renderer build
38+
uses: actions/upload-artifact@v4
39+
with:
40+
name: electron-renderer
41+
path: client/dist-electron/
42+
retention-days: 7
43+
44+
build-electron-apps:
45+
name: Build Electron App (${{ matrix.platform }})
46+
needs: build-electron-renderer
47+
strategy:
48+
fail-fast: false
49+
matrix:
50+
os: [ubuntu-latest, windows-latest, macos-latest]
51+
include:
52+
- os: ubuntu-latest
53+
platform: linux
54+
artifact_patterns: |
55+
electron/out/make/deb/x64/*.deb
56+
electron/out/make/rpm/x64/*.rpm
57+
- os: windows-latest
58+
platform: windows
59+
artifact_patterns: |
60+
electron/out/make/squirrel.windows/x64/*.exe
61+
electron/out/make/squirrel.windows/x64/*.nupkg
62+
electron/out/make/squirrel.windows/x64/RELEASES
63+
- os: macos-latest
64+
platform: macos
65+
artifact_patterns: |
66+
electron/out/make/*.zip
67+
runs-on: ${{ matrix.os }}
68+
steps:
69+
- name: Checkout repository
70+
uses: actions/checkout@v4
71+
72+
- name: Setup Node.js
73+
uses: actions/setup-node@v4
74+
with:
75+
node-version: '24'
76+
cache: 'npm'
77+
cache-dependency-path: 'electron/package-lock.json'
78+
79+
- name: Download Electron renderer build
80+
uses: actions/download-artifact@v4
81+
with:
82+
name: electron-renderer
83+
path: client/dist-electron
84+
85+
- name: Install Electron dependencies
86+
run: |
87+
cd electron
88+
npm ci
89+
90+
- name: Package Electron app
91+
run: |
92+
cd electron
93+
npm run package
94+
95+
- name: Make installers
96+
run: |
97+
cd electron
98+
npm run make
99+
100+
- name: List output files (debug)
101+
run: |
102+
echo "Contents of electron/out/make:"
103+
ls -R electron/out/make/
104+
shell: bash
105+
106+
- name: Upload installers
107+
uses: actions/upload-artifact@v4
108+
with:
109+
name: electron-${{ matrix.platform }}-installers
110+
path: ${{ matrix.artifact_patterns }}
111+
retention-days: 7
112+
113+
upload-electron-to-release:
114+
name: Upload Electron Apps to Release
115+
needs: build-electron-apps
116+
if: startsWith(github.ref, 'refs/tags/v')
117+
runs-on: ubuntu-latest
118+
permissions:
119+
contents: write
120+
steps:
121+
- name: Download all artifacts
122+
uses: actions/download-artifact@v4
123+
with:
124+
path: artifacts
125+
126+
- name: List downloaded artifacts (debug)
127+
run: |
128+
echo "Downloaded artifacts:"
129+
ls -R artifacts/
130+
131+
- name: Upload to release
132+
uses: softprops/action-gh-release@v2
133+
with:
134+
files: |
135+
artifacts/electron-linux-installers/**/*.deb
136+
artifacts/electron-linux-installers/**/*.rpm
137+
artifacts/electron-windows-installers/**/*.exe
138+
artifacts/electron-macos-installers/**/*.zip
139+
token: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,48 @@
1-
name: Build DigiScript Applications
1+
name: Build Server Executables
22

33
on:
44
push:
5-
tags: [ 'v*' ]
5+
tags: ['v*']
66
pull_request:
7-
branches: [ main, dev ]
7+
branches: [main, dev]
8+
9+
permissions:
10+
contents: read
811

912
jobs:
1013
build-front-end:
14+
name: Build Frontend
1115
runs-on: ubuntu-latest
1216
steps:
1317
- name: Checkout repository
1418
uses: actions/checkout@v4
19+
1520
- name: Setup Node.js
1621
uses: actions/setup-node@v4
1722
with:
1823
node-version: '24'
1924
cache: 'npm'
2025
cache-dependency-path: 'client/package-lock.json'
26+
2127
- name: Install dependencies
2228
run: |
2329
cd client
2430
npm ci
31+
2532
- name: Build frontend
2633
run: |
2734
cd client
2835
npm run build
36+
2937
- name: Upload frontend build
3038
uses: actions/upload-artifact@v4
3139
with:
3240
name: frontend-build
3341
path: server/static/
34-
build-executables:
42+
retention-days: 7
43+
44+
build-server-executables:
45+
name: Build Server (${{ matrix.platform }})
3546
needs: build-front-end
3647
strategy:
3748
fail-fast: false
@@ -51,22 +62,27 @@ jobs:
5162
steps:
5263
- name: Checkout repository
5364
uses: actions/checkout@v4
65+
5466
- name: Set up Python
5567
uses: actions/setup-python@v5
5668
with:
5769
python-version: '3.13'
5870
cache: 'pip'
5971
cache-dependency-path: 'server/requirements.txt'
72+
6073
- name: Download frontend build
6174
uses: actions/download-artifact@v4
6275
with:
6376
name: frontend-build
6477
path: server/static
78+
6579
- name: Install Python Packages
6680
run: python -m pip install -r server/requirements.txt
81+
6782
- name: Build DigiScript with build script
6883
run: python dist/build_digiscript.py --onefile --name DigiScript-${{ matrix.platform }}
6984
shell: bash
85+
7086
- name: Create ZIP package
7187
run: |
7288
mkdir -p artifacts
@@ -81,33 +97,39 @@ jobs:
8197
zip DigiScript-${{ matrix.platform }}.zip DigiScript-${{ matrix.platform }}${{ matrix.artifact_extension }}
8298
fi
8399
shell: bash
84-
- name: Upload executable
100+
101+
- name: Upload executable artifact
85102
uses: actions/upload-artifact@v4
86103
with:
87104
name: DigiScript-${{ matrix.platform }}
88105
path: artifacts/DigiScript-${{ matrix.platform }}${{ matrix.artifact_extension }}
89-
- name: Upload ZIP package
106+
retention-days: 7
107+
108+
- name: Upload ZIP artifact
90109
uses: actions/upload-artifact@v4
91110
with:
92111
name: DigiScript-${{ matrix.platform }}-zip
93112
path: artifacts/DigiScript-${{ matrix.platform }}.zip
94-
create-release:
95-
needs: build-executables
113+
retention-days: 7
114+
115+
upload-server-to-release:
116+
name: Upload Server Executables to Release
117+
needs: build-server-executables
96118
if: startsWith(github.ref, 'refs/tags/v')
97119
runs-on: ubuntu-latest
120+
permissions:
121+
contents: write
98122
steps:
99123
- name: Download all artifacts
100124
uses: actions/download-artifact@v4
101125
with:
102126
path: artifacts
103-
- name: Create release
104-
uses: softprops/action-gh-release@v1
127+
128+
- name: Upload to release
129+
uses: softprops/action-gh-release@v2
105130
with:
106131
files: |
107132
artifacts/DigiScript-linux-zip/DigiScript-linux.zip
108133
artifacts/DigiScript-windows-zip/DigiScript-windows.zip
109134
artifacts/DigiScript-macos-zip/DigiScript-macos.zip
110-
draft: false
111-
prerelease: false
112-
generate_release_notes: true
113-
token: ${{ secrets.GITHUB_TOKEN }}
135+
token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/nodelint.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
name: Lint & Format (ESLint + Prettier)
2+
permissions:
3+
contents: read
24

35
on: [push]
46

@@ -15,3 +17,15 @@ jobs:
1517
node-version: 24
1618
- run: npm ci
1719
- run: npm run ci-lint
20+
run-node-lint-electron:
21+
runs-on: ubuntu-latest
22+
defaults:
23+
run:
24+
working-directory: ./electron
25+
steps:
26+
- uses: actions/checkout@v3
27+
- uses: actions/setup-node@v3
28+
with:
29+
node-version: 24
30+
- run: npm ci
31+
- run: npm run ci-lint

.github/workflows/release.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Create Release
2+
3+
on:
4+
push:
5+
tags: ['v*']
6+
7+
permissions:
8+
contents: write
9+
10+
jobs:
11+
create-release:
12+
name: Create GitHub Release
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v4
17+
18+
- name: Create release
19+
uses: softprops/action-gh-release@v2
20+
with:
21+
draft: false
22+
prerelease: false
23+
generate_release_notes: true
24+
token: ${{ secrets.GITHUB_TOKEN }}
25+
body: |
26+
## DigiScript Release ${{ github.ref_name }}
27+
28+
This release includes both the server application and Electron desktop clients.
29+
30+
### Server Application
31+
- **Linux**: Download `DigiScript-linux.zip`
32+
- **Windows**: Download `DigiScript-windows.zip`
33+
- **macOS**: Download `DigiScript-macos.zip`
34+
35+
### Electron Desktop Application
36+
- **Windows**: Download and run the `.exe` installer
37+
- **macOS**: Download the `.zip`, extract, and move DigiScript.app to Applications
38+
- **Linux (Debian/Ubuntu)**: Download and install the `.deb` package
39+
- **Linux (RedHat/Fedora)**: Download and install the `.rpm` package
40+
41+
### Important Notes
42+
- Electron desktop apps require exact version match with server
43+
- First launch of desktop app will prompt for server connection details
44+
- Use mDNS discovery to find servers on your local network
45+
46+
---
47+
48+
See below for detailed release notes.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
CLAUDE.md
44
.idea/
55
.playwright-mcp/
6+
PLAN.md
67

78
# Gradle and Maven with auto-import
89
# When using Gradle or Maven with auto-import, you should exclude module files,

.idea/DigiScript-2.iml

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,4 @@ public/docs/
2828

2929
# Test output
3030
junit/
31+
dist-electron/

0 commit comments

Comments
 (0)