0%

将构建产物发布到包管理器、容器注册表、二进制大对象存储等平台。

本文只保留发布到 GitHub/GitLab/Gitea Release , 其它平台参见: Publish – GoReleaser

将二进制文件打包为归档文件、容器、系统软件包等。

GoReleaser 通过其 builder 接口支持多种编程语言和构建系统。 builder 接收构建配置,并将二进制文件/库输出到 dist 目录中。

GoReleaser 是一款发布自动化工具。旨在解决软件发布既枯燥又容易出错的问题。GoReleaser 无需编写脚本,整个发布流程都是通过 .goreleaser.yaml 文件进行定制的。每次想要创建新版本时,只需推送一个 Git 标签并运行 goreleaser release 命令即可。

GoReleaser 目前支持 Go、Rust、Zig、TypeScript(搭配 Bun 和 Deno)以及 Python。

Fx 是Uber开发并开源的Go语言模块组合框架,Fx提供了模块化、可插拔、可组合的方式来构建Go应用。与 [wire](GitHub - google/wire: Compile-time Dependency Injection for Go)生成代码的方式不同的是:Fx通过反射创建对象和解析依赖关系。

log4rs 是一个高效的日志库框架,借鉴了Java的Logback和log4j。提供了输出到文件和控制台两种方式。

log4rs支持两种配置方式,基于编程方式配置和基于YAML文件配置。 建议使用YAML文件配置,这有效减少重新编译次数。

在Rust里,默认情况下:panic!宏可以用来触发一个panic,它会立即终止当前执行的函数,并开始展开[unwinding]当前线程的调用栈,清理每个栈帧中的数据,清理完成后,它会终止当前运行的进程。