.goreleaser.yaml

 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).