builds: - id: build env: - CGO_ENABLED=0 - GO111MODULE=on goos: - linux - windows - darwin - freebsd # List of combinations of GOOS + GOARCH + GOARM to ignore. ignore: - goos: linux goarch: "386" - goos: windows goarch: "386" - goos: freebsd goarch: "386" ldflags: - -linkmode=internal -s -w -X main.Version="{{ .Version }}" -X main.SHA="{{ .FullCommit }}" -X main.BuildTime={{ .Timestamp }} before: hooks: - go mod tidy changelog: sort: asc use: github groups: - title: 'Breaking changes:' regexp: "(?i)^.*breaking[(\\w)]*:+.*$" order: 0 - title: 'Major features:' regexp: "(?i)^.*(major|new provider|feature)[(\\w)]*:+.*$" order: 1 - title: 'Provider-specific changes:' regexp: "(?i)((akamaiedge|autodns|axfrd|azure|bind|cloudflare|cloudflareapi_old|cloudns|cscglobal|desec|digitalocean|dnsimple|dnsmadeeasy|doh|domainnameshop|easyname|exoscale|gandi|gcloud|gcore|hedns|hetzner|hexonet|hostingde|inwx|linode|loopia|luadns|msdns|mythicbeasts|namecheap|namedotcom|netcup|netlify|ns1|opensrs|oracle|ovh|packetframe|porkbun|powerdns|route53|rwth|softlayer|transip|vultr).*:)+.*" order: 2 - title: 'Deprecation warnings:' regexp: "(?i)^.*Deprecate[(\\w)]*:+.*$" order: 10 - title: 'Other changes and improvements:' order: 9 filters: exclude: - '^test:' - Merge pull request - Merge branch archives: - format_overrides: - goos: windows format: zip universal_binaries: - replace: true id: build nfpms: - id: packages_rpm file_name_template: >- {{ .ProjectName }}- {{- .Version }}. {{- if eq .Arch "386" }}i386 {{- else if eq .Arch "amd64" }}x86_64 {{- else }}{{ .Arch }}{{ end }} homepage: https://docs.dnscontrol.org/ description: "DNSControl: Infrastructure as Code for DNS Zones" maintainer: 'Tom Limoncelli ' license: MIT formats: - rpm - id: packages_deb file_name_template: >- {{ .ProjectName }}- {{- .Version }}. {{- if eq .Arch "386" }}i386 {{- else }}{{ .Arch }}{{ end }} homepage: https://docs.dnscontrol.org/ description: "DNSControl: Infrastructure as Code for DNS Zones" maintainer: 'Tom Limoncelli ' license: MIT formats: - deb dockers: - image_templates: - &amd_image "stackexchange/{{.ProjectName}}:{{ .Version }}-amd64" - &amd_image_ghcr "ghcr.io/stackexchange/{{.ProjectName}}:{{ .Version }}-amd64" goos: linux goarch: amd64 use: buildx ids: - build build_flag_templates: - "--pull" - "--platform=linux/amd64" - "--label=org.opencontainers.image.created={{ .Date }}" - "--label=org.opencontainers.image.name={{ .ProjectName }}" - "--label=org.opencontainers.image.revision={{ .FullCommit }}" - "--label=org.opencontainers.image.version={{ .Version }}" - "--label=org.opencontainers.image.source={{ .GitURL }}" - image_templates: - &arm_image "stackexchange/{{.ProjectName}}:{{ .Version }}-arm64" - &arm_image_ghcr "ghcr.io/stackexchange/{{.ProjectName}}:{{ .Version }}-arm64" goos: linux goarch: arm64 use: buildx ids: - build build_flag_templates: - "--pull" - "--platform=linux/arm64" - "--label=org.opencontainers.image.created={{ .Date }}" - "--label=org.opencontainers.image.name={{ .ProjectName }}" - "--label=org.opencontainers.image.revision={{ .FullCommit }}" - "--label=org.opencontainers.image.version={{ .Version }}" - "--label=org.opencontainers.image.source={{ .GitURL }}" docker_manifests: - name_template: "stackexchange/{{.ProjectName}}:{{ .Version }}" image_templates: - *amd_image - *arm_image - name_template: "ghcr.io/stackexchange/{{.ProjectName}}:{{ .Version }}" image_templates: - *amd_image_ghcr - *arm_image_ghcr - name_template: "stackexchange/{{.ProjectName}}:latest" skip_push: auto image_templates: - *amd_image - *arm_image - name_template: "ghcr.io/stackexchange/{{.ProjectName}}:latest" skip_push: auto image_templates: - *amd_image_ghcr - *arm_image_ghcr checksum: name_template: 'checksums.txt' snapshot: name_template: "{{ incpatch .Version }}-next" release: draft: true prerelease: auto mode: append