Compare commits

..

2 commits

Author SHA1 Message Date
aa12d74f45
Fix markdown formatting
Some checks are pending
Check & Deploy / generate-matrix (push) Waiting to run
Check & Deploy / build-check (push) Blocked by required conditions
Check & Deploy / flake-check (push) Blocked by required conditions
Check & Deploy / deploy (push) Blocked by required conditions
2026-02-18 19:28:37 +01:00
3ecc10c445
checks: Add formatting, statix and deadnix checks 2026-02-18 19:24:56 +01:00
6 changed files with 108 additions and 23 deletions

View file

@ -52,7 +52,7 @@ Hosts enable services declaratively: `custom.web-services.forgejo = { enable = t
## Developer Workflows
| Task | Command |
|---|---|
| ----------------------------- | ------------------------------------------ |
| Rebuild & switch locally | `just switch` |
| Test config without switching | `just test` |
| Deploy to remote host(s) | `just deploy hostname1 hostname2` |

20
flake-parts/checks.nix Normal file
View file

@ -0,0 +1,20 @@
{ inputs, self, ... }:
{
perSystem =
{ inputs', pkgs, ... }:
{
checks = {
formatting = (inputs.treefmt.lib.evalModule pkgs "${self}/treefmt.nix").config.build.check self;
statix = pkgs.runCommand "statix" { buildInputs = [ inputs'.statix.packages.statix ]; } ''
statix check ${self}
touch $out
'';
deadnix = pkgs.runCommand "deadnix" { buildInputs = [ pkgs.deadnix ]; } ''
deadnix --fail ${self}
touch $out
'';
};
};
}

View file

@ -1,16 +1,8 @@
{ inputs, ... }:
{ inputs, self, ... }:
{
perSystem =
{ pkgs, ... }:
{
formatter =
(inputs.treefmt.lib.evalModule pkgs {
projectRootFile = "flake.nix";
programs = {
nixfmt.enable = true;
prettier.enable = true;
just.enable = true;
};
}).config.build.wrapper;
formatter = (inputs.treefmt.lib.evalModule pkgs "${self}/treefmt.nix").config.build.wrapper;
};
}

60
flake.lock generated
View file

@ -114,6 +114,27 @@
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"statix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754487366,
"narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -284,6 +305,7 @@
"nixpkgs-unstable": "nixpkgs-unstable",
"radicale-birthday-calendar": "radicale-birthday-calendar",
"sops": "sops",
"statix": "statix",
"treefmt": "treefmt",
"vscode-extensions": "vscode-extensions"
}
@ -308,6 +330,44 @@
"type": "github"
}
},
"statix": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs"
],
"systems": "systems"
},
"locked": {
"lastModified": 1760596293,
"narHash": "sha256-duH6Il124g+CdYX+HCqOGnpJxyxOCgWYcrcK0CBnA2M=",
"owner": "oppiliappan",
"repo": "statix",
"rev": "e9df54ce918457f151d2e71993edeca1a7af0132",
"type": "github"
},
"original": {
"owner": "oppiliappan",
"repo": "statix",
"type": "github"
}
},
"systems": {
"flake": false,
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt": {
"inputs": {
"nixpkgs": [

View file

@ -35,6 +35,11 @@
inputs.nixpkgs.follows = "nixpkgs";
};
statix = {
url = "github:oppiliappan/statix";
inputs.nixpkgs.follows = "nixpkgs";
};
vscode-extensions = {
url = "github:nix-community/nix-vscode-extensions";
inputs.nixpkgs.follows = "nixpkgs";

8
treefmt.nix Normal file
View file

@ -0,0 +1,8 @@
{
projectRootFile = "flake.nix";
programs = {
nixfmt.enable = true;
prettier.enable = true;
just.enable = true;
};
}