go-starter
是一个为 Golang 项目开发设计的基础模板,内置 VSCode Dev Container 支持、GitHub Actions CI/CD、统一代码规范校验、自动发布构建等常见开发工具链,开箱即用。
- ✅ DevContainer 开发环境(VSCode 原生支持)
- ✅ 完整 CI/CD 流水线(基于 GitHub Actions)
- ✅ 统一代码规范检查(支持 Go、Shell、Markdown、YAML 等)
- ✅ 多语言格式化与 Lint 检查
- ✅ 一键构建发布(Docker + Goreleaser)
- 测试框架:testify
- 覆盖率报告:go-coverage-report
-
Go 语言
- 格式化:goimports
- Lint:golangci-lint
-
Shell 脚本
- ✅ 格式化:shfmt
- 🚧 Lint(未启用):shellcheck
-
Markdown
- 格式化:prettier
- Lint:markdownlint
-
YAML
- 格式化:prettier
-
提交信息规范化
名称 | 功能 |
---|---|
unittest.yaml |
执行测试并生成覆盖率 |
golangci-lint.yaml |
代码静态检查 |
goreleaser.yml |
自动发布版本到 GitHub Release |
lint-pr.yaml |
检查 PR 标题是否符合约定规范 |
docker.yml |
构建并推送 Docker 镜像到 GHCR |
- 预配置
.devcontainer.json
和 Dockerfile - 支持 VSCode Remote Container 一键启动
- 内置 Go + 常用开发工具(make, curl, git, zsh 等)
使用 goreleaser 实现:
- 自动构建二进制
- 自动生成 release notes
- 可选 Docker 镜像构建和上传
make lint # 本地 lint 检查
make test # 运行测试
make build # 编译项目
make release # 本地模拟 goreleaser 发布