/ .goreleaser.yaml
.goreleaser.yaml
 1  version: 2
 2  
 3  builds:
 4    - env:
 5        - CGO_ENABLED=0
 6      goos:
 7        - darwin
 8        - linux
 9        - windows
10      main: ./cmd/server/main.go
11  
12  # Docker 构建配置
13  dockers:
14    - image_templates:
15        - "{{ tolower .Env.DOCKER_USERNAME }}/{{ tolower .ProjectName }}:{{.Version}}-amd64"
16        - "{{ tolower .Env.DOCKER_USERNAME }}/{{ tolower .ProjectName }}:latest-amd64"
17      dockerfile: Dockerfile
18      use: buildx
19      build_flag_templates:
20        - "--platform=linux/amd64"
21        - "--label=org.opencontainers.image.created={{.Date}}"
22        - "--label=org.opencontainers.image.title={{.ProjectName}}"
23        - "--label=org.opencontainers.image.revision={{.FullCommit}}"
24        - "--label=org.opencontainers.image.version={{.Version}}"
25        - "--label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_REPOSITORY_OWNER }}/{{.ProjectName}}"
26    - image_templates:
27        - "{{ tolower .Env.DOCKER_USERNAME }}/{{ tolower .ProjectName }}:{{.Version}}-arm64"
28        - "{{ tolower .Env.DOCKER_USERNAME }}/{{ tolower .ProjectName }}:latest-arm64"
29      dockerfile: Dockerfile
30      use: buildx
31      build_flag_templates:
32        - "--platform=linux/arm64"
33        - "--label=org.opencontainers.image.created={{.Date}}"
34        - "--label=org.opencontainers.image.title={{.ProjectName}}"
35        - "--label=org.opencontainers.image.revision={{.FullCommit}}"
36        - "--label=org.opencontainers.image.version={{.Version}}"
37        - "--label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_REPOSITORY_OWNER }}/{{.ProjectName}}"
38  
39  docker_manifests:
40    - name_template: "{{ tolower .Env.DOCKER_USERNAME }}/{{ tolower .ProjectName }}:{{.Version}}"
41      image_templates:
42        - "{{ tolower .Env.DOCKER_USERNAME }}/{{ tolower .ProjectName }}:{{.Version}}-amd64"
43        - "{{ tolower .Env.DOCKER_USERNAME }}/{{ tolower .ProjectName }}:{{.Version}}-arm64"
44    - name_template: "{{ tolower .Env.DOCKER_USERNAME }}/{{ tolower .ProjectName }}:latest"
45      image_templates:
46        - "{{ tolower .Env.DOCKER_USERNAME }}/{{ tolower .ProjectName }}:latest-amd64"
47        - "{{ tolower .Env.DOCKER_USERNAME }}/{{ tolower .ProjectName }}:latest-arm64"
48  
49  archives:
50    - formats: ["binary"]
51      name_template: >-
52        {{ .ProjectName }}_
53        {{- .Version }}_
54        {{- if eq .Os "darwin" }}macOS_{{ .Arch }}
55        {{- else if and (eq .Os "windows") (eq .Arch "amd64") }}{{ title .Os }}
56        {{- else }}{{ title .Os }}_
57        {{- if eq .Arch "amd64" }}x86_64
58        {{- else if eq .Arch "386" }}i386
59        {{- else }}{{ .Arch }}{{ end }}
60        {{- if .Arm }}v{{ .Arm }}{{ end }}
61        {{- end }}
62  
63  release:
64    extra_files:
65      - glob: "build/*"
66  
67  changelog:
68    sort: asc
69    filters:
70      exclude:
71        - "^docs:"
72        - "^test:"
73        - "^chore:"
74        - "^ci:"