1# SPDX-FileCopyrightText: Amolith <amolith@secluded.site>
2#
3# SPDX-License-Identifier: CC0-1.0
4
5[env]
6CGO_ENABLED = "0"
7
8[tools]
9go = "latest"
10"go:golang.org/x/vuln/cmd/govulncheck" = "latest"
11"go:mvdan.cc/gofumpt" = "latest"
12golangci-lint = "latest"
13
14[tasks.build]
15run = "go build -ldflags \"-X git.secluded.site/sb-mcp/internal/server.Version=$(git describe --tags --always --dirty 2>/dev/null || echo dev)\" ./cmd/sb-mcp/"
16
17[tasks.install]
18run = "go install -ldflags \"-X git.secluded.site/sb-mcp/internal/server.Version=$(git describe --tags --always --dirty 2>/dev/null || echo dev)\" ./cmd/sb-mcp/"
19
20[tasks.test]
21run = "go test -v ./..."
22
23[tasks.fmt]
24run = "gofumpt -w ."
25
26[tasks.fix]
27run = "jj --config 'fix.tools.gofumpt.command=[\"gofumpt\"]' --config 'fix.tools.gofumpt.patterns=[\"glob:**/*.go\"]' fix"
28
29[tasks.lint]
30run = "golangci-lint run"
31
32[tasks.vuln]
33run = "govulncheck ./..."
34
35[tasks.vet]
36run = "go vet ./..."
37
38[tasks."test:quiet"]
39run = """
40output=$(go test ./... 2>&1)
41if [ $? -eq 0 ]; then
42 echo "✓"
43else
44 echo "$output"
45 exit 1
46fi
47"""
48
49[tasks.check]
50depends = ["fmt", "vet", "lint", "vuln", "build", "test:quiet"]
51
52[tasks.release]
53description = "Interactive release workflow (tag, build, pack, upload)"
54run = "fish release.fish"