# This is an example goreleaser.yaml file with some sane defaults. # Make sure to check the documentation at http://goreleaser.com version: 2 before: hooks: # You may remove this if you don't use go modules. - go mod download # you may remove this if you don't need go generate - go generate ./... builds: - env: - CGO_ENABLED=0 flags: - -trimpath goos: - android - linux - windows - darwin - freebsd goarch: - '386' - amd64 - arm - arm64 - mips - mipsle - mips64 - mips64le goarm: - '5' - '6' - '7' gomips: - hardfloat - softfloat ignore: # we only need the arm64 build on android - goos: android goarch: arm - goos: android goarch: '386' - goos: android goarch: amd64 ldflags: - -s -w -X main.version={{.Tag}} -X main.buildTime={{.Date}} hooks: post: - sh -c 'test -d zoneinfo || cp -r /usr/share/zoneinfo .' archives: # use zip for windows archives - format_overrides: - goos: windows format: zip # this name template makes the OS and Arch compatible with the results of uname. name_template: >- {{ .ProjectName }}_ {{- .Version }}_ {{- .Os }}_ {{- if eq .Arch "amd64" }}x86_64 {{- else if eq .Arch "386" }}i386 {{- else }}{{ .Arch }}{{ end }} {{- if .Mips }}_{{ .Mips }}{{ end }} {{- if .Arm }}v{{ .Arm }}{{ end }} checksum: name_template: 'checksums.txt' snapshot: version_template: "{{ incpatch .Version }}-devel" changelog: sort: asc filters: exclude: - '^docs:' - '^test:' dockers: - image_templates: - "{{ .Env.DOCKER_USERNAME }}/ddns-go:{{ .Tag }}-amd64" - "ghcr.io/{{ tolower .Env.GITHUB_REPOSITORY }}:{{ .Tag }}-amd64" use: buildx extra_files: - zoneinfo build_flag_templates: - "--platform=linux/amd64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Version}}" - image_templates: - "{{ .Env.DOCKER_USERNAME }}/ddns-go:{{ .Tag }}-arm64" - "ghcr.io/{{ tolower .Env.GITHUB_REPOSITORY }}:{{ .Tag }}-arm64" use: buildx extra_files: - zoneinfo build_flag_templates: - "--platform=linux/arm64" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Version}}" goarch: arm64 - image_templates: - "{{ .Env.DOCKER_USERNAME }}/ddns-go:{{ .Tag }}-armv7" - "ghcr.io/{{ tolower .Env.GITHUB_REPOSITORY }}:{{ .Tag }}-armv7" use: buildx extra_files: - zoneinfo build_flag_templates: - "--platform=linux/arm/v7" - "--label=org.opencontainers.image.created={{.Date}}" - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - "--label=org.opencontainers.image.version={{.Version}}" goarch: arm goarm: 7 docker_manifests: - name_template: "{{ .Env.DOCKER_USERNAME }}/ddns-go:{{ .Tag }}" image_templates: - "{{ .Env.DOCKER_USERNAME }}/ddns-go:{{ .Tag }}-amd64" - "{{ .Env.DOCKER_USERNAME }}/ddns-go:{{ .Tag }}-arm64" - "{{ .Env.DOCKER_USERNAME }}/ddns-go:{{ .Tag }}-armv7" - name_template: "{{ .Env.DOCKER_USERNAME }}/ddns-go:latest" image_templates: - "{{ .Env.DOCKER_USERNAME }}/ddns-go:{{ .Tag }}-amd64" - "{{ .Env.DOCKER_USERNAME }}/ddns-go:{{ .Tag }}-arm64" - "{{ .Env.DOCKER_USERNAME }}/ddns-go:{{ .Tag }}-armv7" - name_template: "ghcr.io/{{ tolower .Env.GITHUB_REPOSITORY }}:{{ .Tag }}" image_templates: - "ghcr.io/{{ tolower .Env.GITHUB_REPOSITORY }}:{{ .Tag }}-amd64" - "ghcr.io/{{ tolower .Env.GITHUB_REPOSITORY }}:{{ .Tag }}-arm64" - "ghcr.io/{{ tolower .Env.GITHUB_REPOSITORY }}:{{ .Tag }}-armv7" - name_template: "ghcr.io/{{ tolower .Env.GITHUB_REPOSITORY }}:latest" image_templates: - "ghcr.io/{{ tolower .Env.GITHUB_REPOSITORY }}:{{ .Tag }}-amd64" - "ghcr.io/{{ tolower .Env.GITHUB_REPOSITORY }}:{{ .Tag }}-arm64" - "ghcr.io/{{ tolower .Env.GITHUB_REPOSITORY }}:{{ .Tag }}-armv7"