1# This is an example .goreleaser.yml file with some sensible defaults.
2# Make sure to check the documentation at https://goreleaser.com
3
4# The lines below are called `modelines`. See `:help modeline`
5# Feel free to remove those if you don't want/need to use them.
6# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json
7# vim: set ts=2 sw=2 tw=0 fo=cnqoj
8
9version: 2
10pro: true
11
12before:
13 hooks:
14 - go mod tidy
15
16builds:
17 - binary: fur
18 env:
19 - CGO_ENABLED=0
20 main: .
21 ldflags: -s -w -X main.Version=v{{ .Version }} -X main.CommitSHA={{ .Commit }} -X main.CommitDate={{ .CommitDate }}
22 targets:
23 - linux_amd64
24 - linux_arm64
25
26checksum:
27 name_template: "checksums.txt"
28
29snapshot:
30 version_template: "{{ incpatch .Version }}-snapshot"
31
32nightly:
33 version_template: "{{ incpatch .Version }}-devel"
34
35dockers:
36 - image_templates:
37 - "ghcr.io/charmbracelet/{{ .ProjectName }}:v{{ .Version }}-arm64"
38 goarch: arm64
39 build_flag_templates:
40 - --platform=linux/arm64
41 - --label=org.opencontainers.image.title={{ .ProjectName }}
42 - --label=org.opencontainers.image.source={{ .GitURL }}
43 - --label=org.opencontainers.image.version=v{{ .Version }}
44 - --label=org.opencontainers.image.created={{ .Date }}
45 - --label=org.opencontainers.image.revision={{ .FullCommit }}
46 - --label=org.opencontainers.image.licenses=MIT
47 dockerfile: goreleaser.dockerfile
48 use: buildx
49 - image_templates:
50 - "ghcr.io/charmbracelet/{{ .ProjectName }}:v{{ .Version }}-amd64"
51 goarch: amd64
52 build_flag_templates:
53 - --platform=linux/amd64
54 - --label=org.opencontainers.image.title={{ .ProjectName }}
55 - --label=org.opencontainers.image.source={{ .GitURL }}
56 - --label=org.opencontainers.image.version=v{{ .Version }}
57 - --label=org.opencontainers.image.created={{ .Date }}
58 - --label=org.opencontainers.image.revision={{ .FullCommit }}
59 - --label=org.opencontainers.image.licenses=MIT
60 dockerfile: goreleaser.dockerfile
61 use: buildx
62
63docker_manifests:
64 - name_template: "{{ if not .IsNightly }}ghcr.io/charmbracelet/{{ .ProjectName }}:latest{{ end }}"
65 image_templates:
66 - "ghcr.io/charmbracelet/{{ .ProjectName }}:v{{ .Version }}-amd64"
67 - "ghcr.io/charmbracelet/{{ .ProjectName }}:v{{ .Version }}-arm64"
68 - name_template: "ghcr.io/charmbracelet/{{ .ProjectName }}:v{{ .Version }}"
69 image_templates:
70 - "ghcr.io/charmbracelet/{{ .ProjectName }}:v{{ .Version }}-amd64"
71 - "ghcr.io/charmbracelet/{{ .ProjectName }}:v{{ .Version }}-arm64"
72 - name_template: "ghcr.io/charmbracelet/{{ .ProjectName }}:{{ .Commit }}{{ if .IsNightly }}-devel{{ end }}"
73 image_templates:
74 - "ghcr.io/charmbracelet/{{ .ProjectName }}:v{{ .Version }}-amd64"
75 - "ghcr.io/charmbracelet/{{ .ProjectName }}:v{{ .Version }}-arm64"
76 - name_template: "{{ if .IsNightly }}ghcr.io/charmbracelet/{{ .ProjectName }}:nightly{{ end }}"
77 image_templates:
78 - "ghcr.io/charmbracelet/{{ .ProjectName }}:v{{ .Version }}-amd64"
79 - "ghcr.io/charmbracelet/{{ .ProjectName }}:v{{ .Version }}-arm64"
80
81release:
82 prerelease: auto
83 footer: |
84 ---
85
86 <a href="https://charm.sh/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-badge.jpg" width="400"></a>
87
88 Thoughts? Questions? We love hearing from you. Feel free to reach out on [Twitter](https://twitter.com/charmcli), [The Fediverse](https://mastodon.technology/@charm), or on [Discord](https://charm.sh/chat).