英文:
Examples of end-to-end GoLang build pipeline
问题
构建用于Go语言应用程序的端到端流水线时,似乎很少有关于示例和最佳实践的信息,该流水线可以实现以下功能:
- 计算下一个版本(类似于semantic-release)
- 运行所有测试
- 为不同的支持平台构建(Linux、FreeBSD、Mac OS X、Windows)*(amd64、386、arm、s390x、ppc64le)
- 在源代码管理系统(github | gitlab | bitbucket)中进行标记和发布
- 可选择创建软件包(deb、rpm、snaps、flatpaks、brew taps、Inno Setup)
- 在(TravisCI | CircleCI | Jenkins | Bamboo | 其他)中集成运行
是否有关于此的任何文档或示例项目?我已经查看了一些更著名的Go项目(kubernetes、hashicorp/*等),它们似乎都将这部分内容排除在项目之外。
英文:
There seems to be little information around examples and best practices when building an end-to-end pipeline for a Go Lang application that can:
- Calculate next version (ala semantic-release)
- Run all tests
- Build for the different supported platforms ((Linux, FreeBSD, Mac OS X, Windows) * (amd64, 386, arm, s390x, ppc64le))
- Tag and Release in a SCM (github | gitlab | bitbucket)
- Optionally create packages (deb, rpm, snaps, flatpaks, brew taps, Inno Setup).
- Run this integrated in (TravisCI | CircleCI | Jenkins | Bamboo | others)
Is there any documentation, example project at this regard? I've checked some of the more famous Go projects (kubernetes, hashicorp/* and others) and they all seem to leave this part outside of the project.
答案1
得分: 4
我不确定这是否是你需要的,但你可以看一下这个goreleaser。
GoReleaser可以为多个平台构建Go二进制文件,创建GitHub发布,并将Homebrew公式推送到存储库中。所有这些都可以在你喜欢的CI环境中完成。
英文:
I am not sure if this is what you need, but you can take a look at this one goreleaser.
> GoReleaser builds Go binaries for several platforms, creates a GitHub
> release and then pushes a Homebrew formula to a repository. All that
> wrapped in your favorite CI.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论