1project_name: soft-serve
  2
  3env:
  4  - GO111MODULE=on
  5  - CGO_ENABLED=0
  6
  7before:
  8  hooks:
  9    - go mod download
 10
 11builds:
 12  - id: "soft-serve"
 13    binary: "soft-serve"
 14    ldflags: -s -w -X main.Version=v{{ .Version }} -X main.CommitSHA={{ .Commit }}
 15    goos:
 16      - linux
 17      # - darwin
 18      # - windows
 19    goarch:
 20      - amd64
 21      - arm64
 22      - "386"
 23      - arm
 24    goarm:
 25      - "6"
 26      - "7"
 27
 28dockers:
 29  - image_templates:
 30      - "charmcli/soft-serve:latest-amd64"
 31      - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64"
 32      - "charmcli/soft-serve:v{{ .Version }}-amd64"
 33      - "ghcr.io/charmbracelet/soft-serve:latest-amd64"
 34      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64"
 35      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-amd64"
 36    ids: [soft-serve]
 37    goarch: amd64
 38    build_flag_templates:
 39      - --platform=linux/amd64
 40      - --label=org.opencontainers.image.title={{ .ProjectName }}
 41      - --label=org.opencontainers.image.description={{ .ProjectName }}
 42      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
 43      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
 44      - --label=org.opencontainers.image.version=v{{ .Version }}
 45      - --label=org.opencontainers.image.created={{ .Date }}
 46      - --label=org.opencontainers.image.revision={{ .FullCommit }}
 47      - --label=org.opencontainers.image.licenses=MIT
 48    dockerfile: Dockerfile
 49    use: buildx
 50  - image_templates:
 51      - "charmcli/soft-serve:latest-i386"
 52      - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-i386"
 53      - "charmcli/soft-serve:v{{ .Version }}-i386"
 54      - "ghcr.io/charmbracelet/soft-serve:latest-i386"
 55      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-i386"
 56      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-i386"
 57    ids: [soft-serve]
 58    goarch: "386"
 59    build_flag_templates:
 60      - --platform=linux/i386
 61      - --label=org.opencontainers.image.title={{ .ProjectName }}
 62      - --label=org.opencontainers.image.description={{ .ProjectName }}
 63      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
 64      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
 65      - --label=org.opencontainers.image.version=v{{ .Version }}
 66      - --label=org.opencontainers.image.created={{ .Date }}
 67      - --label=org.opencontainers.image.revision={{ .FullCommit }}
 68      - --label=org.opencontainers.image.licenses=MIT
 69    dockerfile: Dockerfile
 70    use: buildx
 71  - image_templates:
 72      - "charmcli/soft-serve:latest-arm64"
 73      - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64"
 74      - "charmcli/soft-serve:v{{ .Version }}-arm64"
 75      - "ghcr.io/charmbracelet/soft-serve:latest-arm64"
 76      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64"
 77      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-arm64"
 78    ids: [soft-serve]
 79    goarch: arm64
 80    build_flag_templates:
 81      - --platform=linux/arm64
 82      - --label=org.opencontainers.image.title={{ .ProjectName }}
 83      - --label=org.opencontainers.image.description={{ .ProjectName }}
 84      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
 85      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
 86      - --label=org.opencontainers.image.version=v{{ .Version }}
 87      - --label=org.opencontainers.image.created={{ .Date }}
 88      - --label=org.opencontainers.image.revision={{ .FullCommit }}
 89      - --label=org.opencontainers.image.licenses=MIT
 90    dockerfile: Dockerfile
 91    use: buildx
 92  - image_templates:
 93      - "charmcli/soft-serve:latest-armv6"
 94      - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-armv6"
 95      - "charmcli/soft-serve:v{{ .Version }}-armv6"
 96      - "ghcr.io/charmbracelet/soft-serve:latest-armv6"
 97      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-armv6"
 98      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-armv6"
 99    ids: [soft-serve]
100    goarch: arm
101    goarm: "6"
102    build_flag_templates:
103      - --platform=linux/arm/v6
104      - --label=org.opencontainers.image.title={{ .ProjectName }}
105      - --label=org.opencontainers.image.description={{ .ProjectName }}
106      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
107      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
108      - --label=org.opencontainers.image.version=v{{ .Version }}
109      - --label=org.opencontainers.image.created={{ .Date }}
110      - --label=org.opencontainers.image.revision={{ .FullCommit }}
111      - --label=org.opencontainers.image.licenses=MIT
112    dockerfile: Dockerfile
113    use: buildx
114  - image_templates:
115      - "charmcli/soft-serve:latest-armv7"
116      - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7"
117      - "charmcli/soft-serve:v{{ .Version }}-armv7"
118      - "ghcr.io/charmbracelet/soft-serve:latest-armv7"
119      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7"
120      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-armv7"
121    ids: [soft-serve]
122    goarch: arm
123    goarm: "7"
124    build_flag_templates:
125      - --platform=linux/arm/v7
126      - --label=org.opencontainers.image.title={{ .ProjectName }}
127      - --label=org.opencontainers.image.description={{ .ProjectName }}
128      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
129      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
130      - --label=org.opencontainers.image.version=v{{ .Version }}
131      - --label=org.opencontainers.image.created={{ .Date }}
132      - --label=org.opencontainers.image.revision={{ .FullCommit }}
133      - --label=org.opencontainers.image.licenses=MIT
134    dockerfile: Dockerfile
135    use: buildx
136
137docker_manifests:
138  - name_template: charmcli/soft-serve:latest
139    image_templates:
140      - charmcli/soft-serve:latest-amd64
141      - charmcli/soft-serve:latest-arm64
142      - charmcli/soft-serve:latest-armv6
143      - charmcli/soft-serve:latest-armv7
144      - charmcli/soft-serve:latest-i386
145  - name_template: ghcr.io/charmbracelet/soft-serve:latest
146    image_templates:
147      - ghcr.io/charmbracelet/soft-serve:latest-amd64
148      - ghcr.io/charmbracelet/soft-serve:latest-arm64
149      - ghcr.io/charmbracelet/soft-serve:latest-armv6
150      - ghcr.io/charmbracelet/soft-serve:latest-armv7
151      - ghcr.io/charmbracelet/soft-serve:latest-i386
152  - name_template: charmcli/soft-serve:v{{ .Major }}
153    image_templates:
154      - charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64
155      - charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64
156      - charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-armv6
157      - charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7
158      - charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-i386
159  - name_template: ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}
160    image_templates:
161      - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64
162      - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64
163      - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-armv6
164      - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7
165      - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-i386
166  - name_template: charmcli/soft-serve:v{{ .Version }}
167    image_templates:
168      - charmcli/soft-serve:v{{ .Version }}-amd64
169      - charmcli/soft-serve:v{{ .Version }}-arm64
170      - charmcli/soft-serve:v{{ .Version }}-armv6
171      - charmcli/soft-serve:v{{ .Version }}-armv7
172      - charmcli/soft-serve:v{{ .Version }}-i386
173  - name_template: ghcr.io/charmbracelet/soft-serve:v{{ .Version }}
174    image_templates:
175      - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-amd64
176      - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-arm64
177      - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-armv6
178      - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-armv7
179      - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-i386