- 静态代码检查(lint):推荐用 golangci-lint。
- 单元测试(test):运行 go test ./...。
- 编译(build):编译源码,支持不同的平台,不同的 CPU 架构。
- 镜像打包和发布(image/image.push):现在的系统比较推荐用 Docker/Kubernetes 进行部署,所以一般也要有镜像构建功能。
- 清理(clean):清理临时文件或者编译后的产物。
- 代码生成(gen):比如要编译生成 protobuf pb.go 文件。
- 部署(deploy,可选):一键部署功能,方便测试。
- 发布(release):发布功能,比如:发布到 Docker Hub、github 等。
- 帮助(help):告诉 Makefile 有哪些功能,如何执行这些功能。
- 版权声明(add-copyright):如果是开源项目,可能需要在每个文件中添加版权头,这可以通过 Makefile 来添加。
- API 文档(swagger):如果使用 swagger 来生成 API 文档,这可以通过 Makefile 来生成。