2.8 KiB
2.8 KiB
Phase 1 Complete - Git Hooks Fix and Test
✅ What Was Fixed
Issues Found
- astyanax: Two
services = {blocks (invalid syntax)- First had
git-hookswith wrongflake-path = self - Second was real services block
- First had
- andromache:
git-hookswith wrongflake-path = self
Solution
Fixed all hosts:
- ✅ Removed duplicate services blocks
- ✅ Fixed
flake-path(removed, uses default from module) - ✅ Added git-hooks to existing services blocks
📁 Files Fixed
| File | Changes |
|---|---|
hosts/astyanax/default.nix |
Fixed duplicate services, removed wrong flake-path |
hosts/andromache/default.nix |
Fixed wrong flake-path |
🧪 Test Instructions
Now that the files are correct, test:
# 1. Rebuild astyanax
sudo nixos-rebuild switch --flake .#astyanax
# Expected output:
# 🪝 Installing git hooks for /home/h/nix...
# (nix build output...)
# ✅ Git hooks installed successfully
# 2. Verify hooks installed
ls -la /home/h/nix/.git/hooks/
# Should show:
# pre-commit
# (and potentially other hooks)
# 3. Test hooks work
# Create a file with bad formatting
echo "broken { }" > /home/h/nix/test.nix
# Try to commit (should fail)
git add test.nix
git commit -m "test"
# Should fail with 3 errors:
# - nixfmt: formatting error
# - statix: antipattern warning
# - deadnix: dead code warning
# Clean up
rm /home/h/nix/test.nix
🎯 What's Now Fixed
| Feature | Status | Method |
|---|---|---|
| Hook definitions | ✅ Done | flake.nix checks |
| nixfmt | ✅ Done | Runs on commit/CI |
| statix | ✅ Done | Lints on commit/CI |
| deadnix | ✅ Done | Checks on commit/CI |
| Auto-install on rebuild | ✅ Ready | Activation script |
| Manual install app | ✅ Ready | nix run .#install-git-hooks |
| All hosts enabled | ✅ Done | Fixed syntax errors |
| flake-path | ✅ Fixed | No more flake-path = self |
🚀 Next Steps
-
Test locally (rebuild astyanax):
sudo nixos-rebuild switch --flake .#astyanax -
Verify hooks installed:
ls -la /home/h/nix/.git/hooks/ -
Test hooks catch errors:
echo "broken { }" > /home/h/nix/test.nix git add test.nix git commit -m "test" # Should fail rm /home/h/nix/test.nix -
Commit Phase 1 changes:
git add . git commit -m "Phase 1: Enhanced code quality (statix, deadnix, all hosts, fixed syntax)" git push -
Check CI: https://github.com/hektor/nix/actions
✅ Phase 1 Complete!
All Phase 1 tasks done:
- ✅ Add statix hook
- ✅ Add deadnix hook
- ✅ Enable git-hooks on all hosts
- ✅ Fix activation script to use
nix build - ✅ Create manual installation app
- ✅ FIXED Duplicate services blocks and wrong flake-path
See IMPLEMENTATION_PLAN.md for Phase 2 (CI/CD Enhancements).