forked from merzzzl/openapi-mcp-server
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskfile.yml
More file actions
145 lines (128 loc) · 4.99 KB
/
Taskfile.yml
File metadata and controls
145 lines (128 loc) · 4.99 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
version: "3"
vars:
APP_NAME: zentao-mcp
BUILD_DIR: ./bin
MAIN_PKG: ./cmd/app
VERSION:
sh: git describe --tags --always --dirty 2>/dev/null || echo dev
env:
CGO_ENABLED: "0"
tasks:
# 代码格式化
fmt:
desc: 格式化 Go 代码
cmds:
- |
echo "Running gofmt..."
gofmt -w -s .
echo "Running golangci-lint with --fix..."
golangci-lint run --fix --fast ./...
# 代码检查
lint:
desc: 运行代码静态检查
cmds:
- golangci-lint run ./...
# 清理构建目录
clean:
desc: 清理构建目录
cmds:
- rm -rf {{.BUILD_DIR}}
- mkdir -p {{.BUILD_DIR}}
# 本地构建(当前平台)
build:
desc: 构建当前平台的可执行文件
deps: [clean]
cmds:
- |
go build -ldflags='-s -w -X main.version={{.VERSION}}' -o {{.BUILD_DIR}}/{{.APP_NAME}} {{.MAIN_PKG}}
echo "Build complete: {{.BUILD_DIR}}/{{.APP_NAME}}"
# 构建所有平台
build:all:
desc: 构建所有平台的可执行文件
deps: [clean]
cmds:
- |
task build:linux-amd64
task build:linux-arm64
task build:darwin-amd64
task build:darwin-arm64
task build:windows-amd64
task build:windows-arm64
echo "All builds complete!"
# Linux AMD64
build:linux-amd64:
desc: 构建 Linux AMD64 版本
cmds:
- |
GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -X main.version={{.VERSION}}" -o {{.BUILD_DIR}}/{{.APP_NAME}}-linux-amd64 {{.MAIN_PKG}}
echo "Built: {{.BUILD_DIR}}/{{.APP_NAME}}-linux-amd64"
# Linux ARM64
build:linux-arm64:
desc: 构建 Linux ARM64 版本
cmds:
- |
GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -X main.version={{.VERSION}}" -o {{.BUILD_DIR}}/{{.APP_NAME}}-linux-arm64 {{.MAIN_PKG}}
echo "Built: {{.BUILD_DIR}}/{{.APP_NAME}}-linux-arm64"
# macOS AMD64 (Intel)
build:darwin-amd64:
desc: 构建 macOS AMD64 版本
cmds:
- |
GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -X main.version={{.VERSION}}" -o {{.BUILD_DIR}}/{{.APP_NAME}}-darwin-amd64 {{.MAIN_PKG}}
echo "Built: {{.BUILD_DIR}}/{{.APP_NAME}}-darwin-amd64"
# macOS ARM64 (Apple Silicon)
build:darwin-arm64:
desc: 构建 macOS ARM64 版本
cmds:
- |
GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -X main.version={{.VERSION}}" -o {{.BUILD_DIR}}/{{.APP_NAME}}-darwin-arm64 {{.MAIN_PKG}}
echo "Built: {{.BUILD_DIR}}/{{.APP_NAME}}-darwin-arm64"
# Windows AMD64
build:windows-amd64:
desc: 构建 Windows AMD64 版本
cmds:
- |
GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -X main.version={{.VERSION}}" -o {{.BUILD_DIR}}/{{.APP_NAME}}-windows-amd64.exe {{.MAIN_PKG}}
echo "Built: {{.BUILD_DIR}}/{{.APP_NAME}}-windows-amd64.exe"
# Windows ARM64
build:windows-arm64:
desc: 构建 Windows ARM64 版本
cmds:
- |
GOOS=windows GOARCH=arm64 go build -ldflags "-s -w -X main.version={{.VERSION}}" -o {{.BUILD_DIR}}/{{.APP_NAME}}-windows-arm64.exe {{.MAIN_PKG}}
echo "Built: {{.BUILD_DIR}}/{{.APP_NAME}}-windows-arm64.exe"
# 打包所有平台为压缩包
package:
desc: 打包所有平台的可执行文件
deps: [build:all]
cmds:
- task: compress
# 压缩打包
compress:
desc: 压缩各平台二进制文件
dir: "{{.BUILD_DIR}}"
cmds:
- |
# Linux
(cd .. && env COPYFILE_DISABLE=1 tar -czf bin/{{.APP_NAME}}-linux-amd64.tar.gz --exclude="._*" --exclude=".DS_Store" --exclude=".git" bin/{{.APP_NAME}}-linux-amd64 config.example.yaml docs && rm -f bin/{{.APP_NAME}}-linux-amd64)
(cd .. && env COPYFILE_DISABLE=1 tar -czf bin/{{.APP_NAME}}-linux-arm64.tar.gz --exclude="._*" --exclude=".DS_Store" --exclude=".git" bin/{{.APP_NAME}}-linux-arm64 config.example.yaml docs && rm -f bin/{{.APP_NAME}}-linux-arm64)
# macOS
(cd .. && env COPYFILE_DISABLE=1 tar -czf bin/{{.APP_NAME}}-darwin-amd64.tar.gz --exclude="._*" --exclude=".DS_Store" --exclude=".git" bin/{{.APP_NAME}}-darwin-amd64 config.example.yaml docs && rm -f bin/{{.APP_NAME}}-darwin-amd64)
(cd .. && env COPYFILE_DISABLE=1 tar -czf bin/{{.APP_NAME}}-darwin-arm64.tar.gz --exclude="._*" --exclude=".DS_Store" --exclude=".git" bin/{{.APP_NAME}}-darwin-arm64 config.example.yaml docs && rm -f bin/{{.APP_NAME}}-darwin-arm64)
# Windows
(cd .. && zip -r bin/{{.APP_NAME}}-windows-amd64.zip bin/{{.APP_NAME}}-windows-amd64.exe config.example.yaml docs && rm -f bin/{{.APP_NAME}}-windows-amd64.exe)
(cd .. && zip -r bin/{{.APP_NAME}}-windows-arm64.zip bin/{{.APP_NAME}}-windows-arm64.exe config.example.yaml docs && rm -f bin/{{.APP_NAME}}-windows-arm64.exe)
echo "Packaging complete!"
ls -lh *.tar.gz *.zip
# 开发运行
dev:
desc: 开发模式运行
cmds:
- go run {{.MAIN_PKG}} -config config.yaml
# 默认 显示帮助
default:
desc: 显示帮助信息
cmds:
- |
echo "Available tasks:"
task --list