exo icon indicating copy to clipboard operation
exo copied to clipboard

nix: add dashboard build with dream2nix

Open JakeHillion opened this issue 2 months ago • 0 comments

Continue working towards a fully Nix based build by building the dashboard with Nix. Continuing the theme of using the existing lock files, use dream2nix to parse the lock file and build the tree of dependency derivations.

dream2nix doesn't like the bundleDependencies, so we apply a small patch to the lock file that drops all dependencies that are bundled. This should ideally be contributed upstream but that can be done later.

Use this new dashboard build in the build-app CI workflow, meaning future macOS apps will include this reproducible dashboard.

Test plan:

  • Built a DMG, shipped to a cluster, loaded in a browser with no cache and the dashboard looks good.

  • Directory layout is as expected:

$ nix build .#dashboard
$ find result/
...
result/_app/immutable/entry
result/_app/immutable/entry/app.CTPAnMjf.js
result/_app/immutable/entry/start.fUSEa-2O.js
result/_app/immutable/nodes
result/_app/immutable/nodes/3.DqQr1Obm.js
result/_app/immutable/nodes/0.DgEY44RO.js
result/_app/immutable/nodes/2.BjZg_lJh.js
result/_app/immutable/nodes/1.D6vGUYYT.js
result/_app/env.js
result/_app/version.json
result/exo-logo.png
result/favicon.ico
result/index.html

JakeHillion avatar Jan 14 '26 11:01 JakeHillion