Files
ddns-go/.goreleaser.yml
Wenhao Zhu 215dbdddaa chore: simplify hooks command (#1372)
* chore: snapshot.name_template

`snapshot.name_template` should not be used anymore, check https://goreleaser.com/deprecations#snapshotname_template for more info

* chore: Use goreleaser to build a docker image

* chore: simplify hooks command
2025-01-18 13:33:50 +08:00

147 lines
4.4 KiB
YAML

# 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"