Repository navigation
Expand file tree
/
Copy pathTaskfile.yml
More file actions
55 lines (49 loc) · 1.67 KB
/
Copy pathTaskfile.yml
File metadata and controls
55 lines (49 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
version: "3"
tasks:
test:
desc: Run all tests
cmds:
- cmd: task test:lint || echo "SKIP test:lint (lint tools not installed)"
- task: test:eval
- task: test:unit
- task: test:flake
- task: test:stacks
test:stacks:
desc: Verify ultimate/bbb package, MCP and image-layer boundaries
cmds:
- nix eval .#stackChecks --json
test:lint:
desc: Lint nix files with statix and deadnix
preconditions:
- sh: command -v statix
msg: "statix not found (enable the nixos module or: nix profile install nixpkgs#statix)"
- sh: command -v deadnix
msg: "deadnix not found (enable the nixos module or: nix profile install nixpkgs#deadnix)"
cmds:
- statix check .
- deadnix --fail .
test:eval:
desc: Evaluate homeConfigurations across all platforms (linux, darwin, wsl, vagrant)
vars:
CONFIGS:
sh: nix eval .#homeConfigurations --apply 'builtins.attrNames' --json 2>/dev/null | jq -r '.[]' | grep -E '^(devcell|wsl)-'
cmds:
- for: { var: CONFIGS }
cmd: |
echo "eval: {{.ITEM}}"
nix eval .#homeConfigurations."{{.ITEM}}".activationPackage.drvPath --raw > /dev/null
test:unit:
desc: Run shell-based unit tests
vars:
TESTS:
sh: find tests -name 'test-*.sh' -not -name '*-e2e*' | sort
cmds:
- for: { var: TESTS }
cmd: bash {{.ITEM}}
test:flake:
desc: Validate flake metadata and outputs structure
cmds:
- nix flake metadata --json > /dev/null
- nix eval .#devcellModules --json > /dev/null
- nix eval .#devcellProfiles --json > /dev/null
- nix eval .#devcellCatalog --json > /dev/null