Skip to content

phenix3443/go-starter

Repository files navigation

go-starter

go-starter 是一个为 Golang 项目开发设计的基础模板,内置 VSCode Dev Container 支持、GitHub Actions CI/CD、统一代码规范校验、自动发布构建等常见开发工具链,开箱即用。

Unittest with Coverage golangci-lint Goreleaser Lint PR Push Docker Image


🚀 特性概览

  • DevContainer 开发环境(VSCode 原生支持)
  • 完整 CI/CD 流水线(基于 GitHub Actions)
  • 统一代码规范检查(支持 Go、Shell、Markdown、YAML 等)
  • 多语言格式化与 Lint 检查
  • 一键构建发布(Docker + Goreleaser)

🧱 技术栈与工具链

🧪 单元测试与覆盖率

🧹 代码风格与 Lint(通过 Husky + lint-staged)


⚙️ GitHub Actions 流水线

名称 功能
unittest.yaml 执行测试并生成覆盖率
golangci-lint.yaml 代码静态检查
goreleaser.yml 自动发布版本到 GitHub Release
lint-pr.yaml 检查 PR 标题是否符合约定规范
docker.yml 构建并推送 Docker 镜像到 GHCR

🐳 开发环境(DevContainer)

  • 预配置 .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 发布

About

golang starter

Resources

License

Stars

Watchers

Forks

Packages