Taskfile.yaml

 1version: '3'
 2
 3tasks:
 4  lint:
 5    desc: Run linters
 6    cmds:
 7      - golangci-lint run ./...
 8
 9  lint:fix:
10    desc: Run linters and fix issues
11    cmds:
12      - golangci-lint run --fix ./...
13
14  fmt:
15    desc: Format code
16    cmds:
17      - go fmt ./...
18
19  test:
20    desc: Run tests
21    cmds:
22      - go test {{.CLI_ARGS}} ./...
23
24  modernize:
25    desc: Modernize code
26    cmds:
27      - modernize ./...
28
29  install:
30    desc: Install catwalk locally
31    cmds:
32      - go install -v .
33
34  run:
35    desc: Run catwalk
36    aliases: [default]
37    cmds:
38      - go run .
39  release:
40    desc: Create and push a new tag following semver
41    vars:
42      NEXT:
43        sh: svu next --always || go run github.com/caarlos0/svu/v3@latest next --always
44    prompt: "This will release {{.NEXT}}. Continue?"
45    preconditions:
46      - sh: '[ $(git symbolic-ref --short HEAD) = "main" ]'
47        msg: Not on main branch
48      - sh: "[ $(git status --porcelain=2 | wc -l) = 0 ]"
49        msg: "Git is dirty"
50    cmds:
51      - git commit --allow-empty -m "{{.NEXT}}"
52      - git tag --annotate --sign -m "{{.NEXT}}" {{.NEXT}} {{.CLI_ARGS}}
53      - echo "Pushing {{.NEXT}}..."
54      - git push origin main --follow-tags
55
56  gen:all:
57    desc: Generate all provider configurations
58    aliases: [generate, gen]
59    cmds:
60      - task: gen:copilot
61      - task: gen:huggingface
62      - task: gen:openrouter
63      - task: gen:synthetic
64
65  gen:copilot:
66    desc: Generate copilot provider configurations
67    cmds:
68      - go run cmd/copilot/main.go
69
70  gen:huggingface:
71    desc: Generate huggingface provider configurations
72    cmds:
73      - go run cmd/huggingface/main.go
74
75  gen:openrouter:
76    desc: Generate openrouter provider configurations
77    cmds:
78      - go run cmd/openrouter/main.go
79
80  gen:synthetic:
81    desc: Generate synthetic provider configurations
82    cmds:
83      - go run cmd/synthetic/main.go