goreleaser

Go 项目制品构建与发布

补充说明

goreleaser 从 git tag 触发,交叉编译多平台二进制、生成压缩包和校验和,并发布到 GitHub Release、Homebrew 等渠道。配置集中在 .goreleaser.yml。

常用示例

goreleaser init
goreleaser check
goreleaser build --snapshot --clean
goreleaser release --snapshot --clean
goreleaser release --clean
goreleaser release --skip=publish --clean
goreleaser changelog

最小配置:

version: 2
builds:
  - id: app
    main: ./cmd/app
    binary: app
    env: [CGO_ENABLED=0]
    goos: [linux, darwin, windows]
    goarch: [amd64, arm64]
    ldflags:
      - -s -w -X main.version={{.Version}}
archives:
  - formats: [tar.gz]
    format_overrides:
      - goos: windows
        formats: [zip]
checksum:
  name_template: checksums.txt

易错点与排错

相关命令