changelog generator & diff tool
stormlightlabs.github.io/git-storm/
changelog
changeset
markdown
golang
git
1version: "3"
2
3vars:
4 BINARY_NAME: storm
5 BUILD_DIR: ./tmp
6 MAIN_PATH: ./cmd
7 VERSION:
8 sh: git describe --tags --always --dirty 2>/dev/null || echo "dev"
9
10tasks:
11 default:
12 desc: Show available tasks
13 cmds:
14 - task --list
15
16 build:
17 desc: Build the storm binary to ./tmp
18 cmds:
19 - mkdir -p {{.BUILD_DIR}}
20 - go build -o {{.BUILD_DIR}}/{{.BINARY_NAME}} {{.MAIN_PATH}}
21 sources:
22 - "**/*.go"
23 - go.mod
24 - go.sum
25 generates:
26 - "{{.BUILD_DIR}}/{{.BINARY_NAME}}"
27
28 build:release:
29 desc: Build optimized release binary
30 cmds:
31 - mkdir -p {{.BUILD_DIR}}
32 - go build -ldflags="-s -w -X main.versionString={{.VERSION}}" -o {{.BUILD_DIR}}/{{.BINARY_NAME}} {{.MAIN_PATH}}
33
34 install:
35 desc: Install storm to $GOPATH/bin
36 cmds:
37 - go install {{.MAIN_PATH}}
38
39 clean:
40 desc: Remove build artifacts
41 cmds:
42 - rm -rf {{.BUILD_DIR}}
43 - go clean
44
45 test:
46 desc: Run all tests with verbose output
47 cmds:
48 - go test -v ./...
49
50 test:quiet:
51 desc: Run all tests
52 cmds:
53 - go test ./...
54
55 test:cover:
56 desc: Run tests with coverage report
57 cmds:
58 - go test -coverprofile={{.BUILD_DIR}}/coverage.out ./...
59 - go tool cover -html={{.BUILD_DIR}}/coverage.out -o {{.BUILD_DIR}}/coverage.html
60 - 'echo "Coverage report: {{.BUILD_DIR}}/coverage.html"'
61
62 fmt:
63 desc: Format Go code
64 cmds:
65 - go fmt ./...
66
67 tidy:
68 desc: Tidy and verify dependencies
69 cmds:
70 - go mod tidy
71 - go mod verify
72
73 deps:
74 desc: Download dependencies
75 cmds:
76 - go mod download
77
78 check:
79 desc: Run all checks (fmt, test, lint)
80 cmds:
81 - task: fmt
82 - task: test
83
84 vet:
85 desc: Run go vet
86 cmds:
87 - go vet ./...
88
89 setup:
90 desc: Initial setup - install dependencies and build
91 cmds:
92 - task: deps
93 - task: tidy
94 - task: build
95 - echo "Setup complete."
96
97 gen:completions:
98 desc: Generate shell completion files
99 cmds:
100 - rm -rf completions
101 - mkdir -p completions
102 - for sh in bash zsh fish; do
103 go run ./cmd completion "$sh" > completions/storm."$sh";
104 done
105
106 gen:manpage:
107 desc: Generate man page file
108 cmds:
109 - rm -rf manpages
110 - mkdir -p manpages
111 - go run ./cmd man > manpages/storm.1