Files
chatlog2/.goreleaser.yaml
2025-08-28 01:53:59 +08:00

159 lines
4.5 KiB
YAML

# GoReleaser v2 配置
version: 2
before:
hooks:
- go mod tidy
builds:
- id: chatlog-builds
binary: chatlog
ldflags:
- -s -w -X github.com/sjzar/chatlog/pkg/version.Version={{.Version}}
env:
- CGO_ENABLED=1
goos:
- darwin
- windows
- linux
goarch:
- amd64
- arm64
overrides:
- goos: darwin
goarch: amd64
env:
- CGO_ENABLED=1
- CC=o64-clang
- CXX=o64-clang++
- goos: darwin
goarch: arm64
env:
- CGO_ENABLED=1
- CC=oa64-clang
- CXX=oa64-clang++
- goos: windows
goarch: amd64
env:
- CGO_ENABLED=1
- CC=x86_64-w64-mingw32-gcc
- CXX=x86_64-w64-mingw32-g++
- goos: windows
goarch: arm64
env:
- CGO_ENABLED=1
- CC=/llvm-mingw/bin/aarch64-w64-mingw32-gcc
- CXX=/llvm-mingw/bin/aarch64-w64-mingw32-g++
- goos: linux
goarch: amd64
env:
- CGO_ENABLED=1
- CC=x86_64-linux-gnu-gcc
- CXX=x86_64-linux-gnu-g++
- goos: linux
goarch: arm64
env:
- CGO_ENABLED=1
- CC=aarch64-linux-gnu-gcc
- CXX=aarch64-linux-gnu-g++
upx:
- enabled: true
goos: [darwin, windows, linux]
goarch: [amd64, arm64]
compress: best
lzma: true
archives:
- id: default
formats: tar.gz
name_template: >-
{{ .ProjectName }}_
{{- .Version }}_
{{- .Os }}_
{{- .Arch }}
format_overrides:
- goos: windows
formats: zip
files:
- LICENSE
- README.md
checksum:
name_template: 'checksums.txt'
algorithm: sha256
# 配置 GitHub Release
release:
draft: true
prerelease: auto
mode: replace
# Docker 镜像配置
# FIXME: 等待 goreleaser 2.12 更新后使用 dockers_v2
dockers:
- image_templates:
- "ghcr.io/sjzar/chatlog:{{ .Tag }}-amd64"
- "sjzar/chatlog:{{ .Tag }}-amd64"
dockerfile: Dockerfile
extra_files:
- script/docker-entrypoint.sh
use: buildx
goos: linux
goarch: amd64
build_flag_templates:
- "--platform=linux/amd64"
- "--label=org.opencontainers.image.title={{.ProjectName}}"
- "--label=org.opencontainers.image.description=chat log tool, easily use your own chat data."
- "--label=org.opencontainers.image.url=https://github.com/sjzar/chatlog"
- "--label=org.opencontainers.image.source=https://github.com/sjzar/chatlog"
- "--label=org.opencontainers.image.version={{.Version}}"
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.licenses=Apache-2.0"
- image_templates:
- "ghcr.io/sjzar/chatlog:{{ .Tag }}-arm64"
- "sjzar/chatlog:{{ .Tag }}-arm64"
dockerfile: Dockerfile
extra_files:
- script/docker-entrypoint.sh
use: buildx
goos: linux
goarch: arm64
build_flag_templates:
- "--platform=linux/arm64"
- "--label=org.opencontainers.image.title={{.ProjectName}}"
- "--label=org.opencontainers.image.description=chat log tool, easily use your own chat data."
- "--label=org.opencontainers.image.url=https://github.com/sjzar/chatlog"
- "--label=org.opencontainers.image.source=https://github.com/sjzar/chatlog"
- "--label=org.opencontainers.image.version={{.Version}}"
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.licenses=Apache-2.0"
# Docker manifest 配置用于多架构镜像
docker_manifests:
# GitHub Container Registry manifests
- name_template: "ghcr.io/sjzar/chatlog:{{ .Tag }}"
image_templates:
- "ghcr.io/sjzar/chatlog:{{ .Tag }}-amd64"
- "ghcr.io/sjzar/chatlog:{{ .Tag }}-arm64"
# Docker Hub manifests
- name_template: "sjzar/chatlog:{{ .Tag }}"
image_templates:
- "sjzar/chatlog:{{ .Tag }}-amd64"
- "sjzar/chatlog:{{ .Tag }}-arm64"
# GitHub Container Registry latest
- name_template: "{{ if not .Prerelease }}ghcr.io/sjzar/chatlog:latest{{ end }}"
image_templates:
- "ghcr.io/sjzar/chatlog:{{ .Tag }}-amd64"
- "ghcr.io/sjzar/chatlog:{{ .Tag }}-arm64"
# Docker Hub latest
- name_template: "{{ if not .Prerelease }}sjzar/chatlog:latest{{ end }}"
image_templates:
- "sjzar/chatlog:{{ .Tag }}-amd64"
- "sjzar/chatlog:{{ .Tag }}-arm64"