-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskfile.yml
More file actions
102 lines (89 loc) · 2.57 KB
/
Copy pathTaskfile.yml
File metadata and controls
102 lines (89 loc) · 2.57 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
---
version: '3'
vars:
ZIG_OPTIMIZE: '{{.ZIG_OPTIMIZE | default "ReleaseFast"}}'
# Tests default to Debug for better error detection (assertions, bounds checks)
ZIG_TEST_OPTIMIZE: '{{.ZIG_TEST_OPTIMIZE | default "Debug"}}'
tasks:
build:
desc: Build poker-eval CLI executable
cmds:
- zig build -Doptimize={{.ZIG_OPTIMIZE}}
sources:
- src/**/*.zig
- build.zig
generates:
- zig-out/bin/poker-eval
test:
desc: Run all unit tests (defaults to Debug)
cmds:
- zig build test -Doptimize={{.ZIG_TEST_OPTIMIZE}} --summary all
bench:
desc: Run poker evaluator benchmarks
deps:
- build
cmds:
- zig-out/bin/poker-eval bench {{.CLI_ARGS}}
run:
desc: Run poker-eval CLI with optional arguments
deps:
- build
cmds:
- zig-out/bin/poker-eval {{.CLI_ARGS}}
clean:
desc: Clean build artifacts
cmds:
- rm -rf zig-out zig-cache
profile:
desc: Profile hot paths with uniprof (use SCENARIO=<name> ITERATIONS=<n>)
deps:
- build
vars:
SCENARIO: '{{.SCENARIO | default "showdown"}}'
ITERATIONS: '{{.ITERATIONS | default "50000000"}}'
cmds:
- rm -rf "/tmp/profile_{{.SCENARIO}}"
- mkdir -p "/tmp/profile_{{.SCENARIO}}"
- command -v dsymutil >/dev/null 2>&1 && dsymutil zig-out/bin/profiler || true
- uniprof record --platform native -o "/tmp/profile_{{.SCENARIO}}/profile.json" -- zig-out/bin/profiler --scenario={{.SCENARIO}} --iterations={{.ITERATIONS}}
gen:all-hands:
desc: Generate all 133M hand evaluations to binary file
sources:
- src/**/*.zig
- build.zig
generates:
- all_hands.dat
cmds:
- zig build gen-all -Doptimize={{.ZIG_OPTIMIZE}}
verify:all-hands:
desc: Verify evaluator against all 133M hands
deps:
- gen:all-hands
sources:
- src/**/*.zig
- build.zig
- all_hands.dat
cmds:
- zig build verify-all -Doptimize={{.ZIG_OPTIMIZE}}
gen:heads-up:
desc: Generate heads-up equity tables (~15 min)
sources:
- src/**/*.zig
- build.zig
generates:
- src/heads_up_tables.zig
cmds:
- zig build gen-heads-up -Doptimize={{.ZIG_OPTIMIZE}}
gen:heads-up-matrix:
desc: Generate 169x169 heads-up equity matrix (~20 min)
sources:
- src/**/*.zig
- build.zig
generates:
- src/heads_up_matrix.zig
cmds:
- zig build gen-heads-up-matrix -Doptimize={{.ZIG_OPTIMIZE}}
release:
desc: Bump version using svu next --always and trigger release workflow
cmds:
- ./scripts/release.sh