GitNexus/gitnexus-desktop
Sparsh 610a102397 feat: add validation job to GitHub Actions for desktop packaging
- Introduced a new job `validate` in the GitHub Actions workflow to validate the desktop package.
- Added steps for checking out the repository, setting up Node.js, installing dependencies, type checking, and running unit tests.
- Updated the `package` job to depend on the `validate` job.

chore: update package-lock.json and package.json for vitest integration

- Added `vitest` as a development dependency in `package.json`.
- Updated `typecheck` script to include a new TypeScript configuration for vitest.
- Updated `package-lock.json` to reflect the new dependencies.

refactor: modularize runtime path handling in main process

- Created a new module `runtime-paths.ts` to handle static path normalization and request handling.
- Refactored `main.ts` to utilize the new `normalizeStaticPath`, `getRequestedPath`, and `getPackagedRendererEntry` functions.

test: add unit tests for runtime path utilities

- Implemented tests for `normalizeStaticPath`, `getRequestedPath`, and `getPackagedRendererEntry` using Vitest.
- Ensured coverage for directory traversal attempts and null-byte paths.

chore: configure Vitest for testing

- Added `vitest.config.ts` for Vitest configuration.
- Created `tsconfig.vitest.json` to include types for Vitest in TypeScript compilation.

Co-authored-by: Copilot <copilot@github.com>
2026-04-24 13:45:23 +05:30
..
build fix(desktop): restore native OS window controls (minimize/maximize/close) 2026-04-19 22:47:48 +05:30
scripts feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30
src feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30
test feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30
.gitignore clean setup and ckeleton created at gitnexus-desktop 2026-04-19 14:38:36 +05:30
electron-builder.yml style(desktop): format gitnexus-desktop package 2026-04-20 10:13:29 +05:30
electron.vite.config.ts style(desktop): format gitnexus-desktop package 2026-04-20 10:13:29 +05:30
package-lock.json feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30
package.json feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30
README.md fix(desktop): validate unpacked app startup in packaging flow 2026-04-20 21:58:01 +05:30
tsconfig.json style(desktop): format gitnexus-desktop package 2026-04-20 10:13:29 +05:30
tsconfig.node.json style(desktop): format gitnexus-desktop package 2026-04-20 10:13:29 +05:30
tsconfig.renderer.json style(desktop): format gitnexus-desktop package 2026-04-20 10:13:29 +05:30
tsconfig.vitest.json feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30
vitest.config.ts feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30

GitNexus Desktop

Electron desktop shell for GitNexus. The app starts the local backend and loads the real gitnexus-web UI inside the desktop window.

Commands

npm run dev
npm run build:dir
npm run build:win
npm run build:mac
npm run build:linux
  • npm run dev starts the Electron shell plus the local GitNexus backend.
  • npm run build:dir creates an unpacked desktop app directory.
  • npm run build:win creates a Windows NSIS installer .exe.
  • npm run build:mac creates a macOS .dmg.
  • npm run build:linux creates a Linux .AppImage.
  • npm run smoke:unpacked launches the latest unpacked desktop build, verifies startup, and exits.

Build output is written under gitnexus-desktop/release/<timestamp>/.

PR Artifacts

The Desktop Packaging GitHub Actions workflow builds an unpacked desktop app, smoke-tests startup, then uploads preview desktop artifacts for pull requests that touch .github/workflows/desktop-packaging.yml, gitnexus-desktop/**, gitnexus/**, gitnexus-web/**, or gitnexus-shared/**.

  • gitnexus-desktop-windows contains the Windows NSIS installer .exe and win-unpacked/.
  • gitnexus-desktop-macos contains the macOS .dmg and mac*/ output.
  • gitnexus-desktop-linux contains the Linux .AppImage and linux-unpacked/.

GitHub artifact URLs are run-specific and expire, so use the artifact names above from the latest successful PR workflow run.