Goreleaser

date
2023-09-15 21:23:28

自动编译各种架构的工具。

官网:https://goreleaser.com/intro/

安装:

go install github.com/goreleaser/goreleaser/v2@latest

goreleaser init​ 创建 .goreleaser.yaml​ ,常用的如下,然后 goreleaser --snapshot​ 本地编译。

version: 2

before:
  hooks:
    # You may remove this if you don't use go modules.
    - go mod tidy
    # you may remove this if you don't need go generate
    - go generate ./...

builds:
  - env:
      - CGO_ENABLED=0
    targets:
      - darwin_amd64
      - darwin_arm64
      - linux_386
      - linux_amd64
      - linux_amd64_v3
      - linux_arm_5
      - linux_arm_6
      - linux_arm_7
      - linux_arm64
      - linux_mips_softfloat
      - linux_mips_hardfloat
      - linux_mipsle_softfloat
      - linux_mipsle_hardfloat
      - linux_mips64
      - linux_mips64le
      - linux_s390x
      - linux_riscv64
      - freebsd_386
      - freebsd_amd64
      - windows_386
      - windows_amd64
      - windows_amd64_v3
      - windows_arm64
    ldflags:
      - "-s -w -X 'main.version={{ .Tag }}'"
    gcflags:
      - "trimpath=$GOPATH"
    asmflags:
      - "trimpath=$GOPATH"


archives:
  - format: tar.gz
    # use zip for windows archives
    format_overrides:
      - goos: windows
        format: zip

changelog:
  sort: asc
  filters:
    exclude:
      - "^docs:"
      - "^test:"

release:
  footer: >-

    ---

    Released by [GoReleaser](https://github.com/goreleaser/goreleaser).