Handy/.github/workflows
Evgeny Khudoba 7056edce28
fix(nix): replace manual hash management with bun2nix (#1021)
* fix(nix): replace manual hash management with bun2nix

Eliminate the recurring problem of Nix build hashes breaking whenever
bun dependencies change or the bun version in nixpkgs updates.

Changes:
- Add bun2nix flake input (pinned to v2.0.1) for per-package fetchurl
  expressions from bun.lock, replacing the single FOD hash approach
- Use allowBuiltinFetchGit for cargo git dependencies, removing manual
  outputHashes that required updates on every git dep change
- Add scripts/check-nix-deps.ts (cross-platform, runs via bun) that
  auto-regenerates .nix/bun.nix when bun.lock changes, triggered by
  the postinstall hook in package.json
- Update CI workflow to verify bun.nix is in sync and evaluate flake
- Remove scripts/update-nix-hashes.sh (no longer needed)

* style: format check-nix-deps.ts with prettier

* ci(nix): make nix-check job a required check

* fix(nix): address review feedback

- Fix bun2nix input pinning: use path syntax (github:owner/repo/tag)
  instead of ?tag= query parameter so flake.lock records the ref
  and `nix flake update` respects the pin
- Make check-nix-deps.ts exit with 0 on bun2nix failure so that
  `bun install` is not blocked for non-Nix developers (CI validates
  bun.nix independently)
- Fix stale reference to check-nix-deps.sh in flake.nix comment

* ci(nix): add full nix build step to CI workflow

Add `nix build .#handy -L --show-trace` after flake evaluation to
catch runtime build errors (broken dependencies, sandbox issues,
compilation failures) that flake eval alone cannot detect.

* fix(nix): update bun2nix pin from 2.0.1 to 2.0.8

bun2nix 2.0.1 has a bug in cache-entry-creator that causes
"ln: failed to create symbolic link '/p': Permission denied"
during the build. Version 2.0.8 fixes this.
2026-03-13 18:45:46 +08:00
..
build-test.yml arm linux build? (#629) 2026-01-20 13:03:03 +08:00
build.yml fix: simplify Bun setup for Windows ARM64 (#965) 2026-03-06 21:44:19 +08:00
lint.yml feat: add models settings page with filtering and management (#478) 2026-02-08 12:18:22 +08:00
nix-check.yml fix(nix): replace manual hash management with bun2nix (#1021) 2026-03-13 18:45:46 +08:00
playwright.yml chore: add Playwright E2E testing infrastructure (#673) 2026-02-06 17:15:19 +08:00
pr-test-build.yml arm linux build? (#629) 2026-01-20 13:03:03 +08:00
prettier.yml fix workflow? 2025-11-30 11:28:41 +07:00
release.yml arm linux build? (#629) 2026-01-20 13:03:03 +08:00
test.yml cache (#724) 2026-02-06 17:13:38 +08:00