Skip to content

Commit

Permalink
ci: multi-arch goreleaser images
Browse files Browse the repository at this point in the history
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
  • Loading branch information
caarlos0 committed Nov 28, 2020
1 parent 1befa43 commit 1c46891
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 22 deletions.
106 changes: 86 additions & 20 deletions .goreleaser.yml
Expand Up @@ -35,12 +35,12 @@ changelog:
- go mod tidy
dockers:
- image_templates:
- 'goreleaser/goreleaser:{{ .Tag }}-cgo'
- 'ghcr.io/goreleaser/goreleaser:{{ .Tag }}-cgo'
- 'goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-cgo'
- 'ghcr.io/goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-cgo'
- 'goreleaser/goreleaser:latest-cgo'
- 'ghcr.io/goreleaser/goreleaser:latest-cgo'
- 'goreleaser/goreleaser:{{ .Tag }}-cgo-amd64'
- 'ghcr.io/goreleaser/goreleaser:{{ .Tag }}-cgo-amd64'
- 'goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-cgo-amd64'
- 'ghcr.io/goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-cgo-amd64'
- 'goreleaser/goreleaser:latest-cgo-amd64'
- 'ghcr.io/goreleaser/goreleaser:latest-cgo-amd64'
dockerfile: Dockerfile.cgo
binaries:
- goreleaser
Expand All @@ -50,15 +50,61 @@ dockers:
- "--label=org.opencontainers.image.name={{.ProjectName}}"
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.version={{.Version}}"
- "--label=org.opencontainers.image.source={{.GitURL}}"
- "--build-arg"
- "ARCH=amd64"
extra_files:
- scripts/entrypoint.sh
- image_templates:
- 'goreleaser/goreleaser:{{ .Tag }}-cgo-arm64v8'
- 'ghcr.io/goreleaser/goreleaser:{{ .Tag }}-cgo-arm64v8'
- 'goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-cgo-arm64v8'
- 'ghcr.io/goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-cgo-arm64v8'
- 'goreleaser/goreleaser:latest-cgo-arm64v8'
- 'ghcr.io/goreleaser/goreleaser:latest-cgo-arm64v8'
dockerfile: Dockerfile.cgo
binaries:
- goreleaser
build_flag_templates:
- "--pull"
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.name={{.ProjectName}}"
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.version={{.Version}}"
- "--label=org.opencontainers.image.source={{.GitURL}}"
- "--build-arg"
- "ARCH=arm64v8"
goarch: arm64
extra_files:
- scripts/entrypoint.sh
- image_templates:
- 'goreleaser/goreleaser:{{ .Tag }}-amd64'
- 'ghcr.io/goreleaser/goreleaser:{{ .Tag }}-amd64'
- 'goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-amd64'
- 'ghcr.io/goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-amd64'
- 'goreleaser/goreleaser:latest-amd64'
- 'ghcr.io/goreleaser/goreleaser:latest-amd64'
dockerfile: Dockerfile
binaries:
- goreleaser
build_flag_templates:
- "--pull"
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.name={{.ProjectName}}"
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.version={{.Version}}"
- "--label=org.opencontainers.image.source={{.GitURL}}"
- "--build-arg"
- "ARCH=amd64"
extra_files:
- scripts/entrypoint.sh
- image_templates:
- 'goreleaser/goreleaser:{{ .Tag }}'
- 'ghcr.io/goreleaser/goreleaser:{{ .Tag }}'
- 'goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}'
- 'ghcr.io/goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}'
- 'goreleaser/goreleaser:latest'
- 'ghcr.io/goreleaser/goreleaser:latest'
- 'goreleaser/goreleaser:{{ .Tag }}-arm64v8'
- 'ghcr.io/goreleaser/goreleaser:{{ .Tag }}-arm64v8'
- 'goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-arm64v8'
- 'ghcr.io/goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-arm64v8'
- 'goreleaser/goreleaser:latest-arm64v8'
- 'ghcr.io/goreleaser/goreleaser:latest-arm64v8'
dockerfile: Dockerfile
binaries:
- goreleaser
Expand All @@ -69,16 +115,36 @@ dockers:
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.version={{.Version}}"
- "--label=org.opencontainers.image.source={{.GitURL}}"
- "--label=com.github.actions.name={{.ProjectName}}"
- "--label=com.github.actions.description=Deliver Go binaries as fast and easily as possible"
- "--label=com.github.actions.icon=terminal"
- "--label=com.github.actions.color=blue"
- "--label=repository=http://github.com/goreleaser/goreleaser"
- "--label=homepage=http://goreleaser.com"
- "--label=maintainer=Carlos Becker <goreleaser@carlosbecker.com>"

- "--build-arg"
- "ARCH=arm64v8"
goarch: arm64
extra_files:
- scripts/entrypoint.sh
docker_manifests:
- manifest_template: 'goreleaser/goreleaser:{{ .Tag }}'
image_templates:
- 'goreleaser/goreleaser:{{ .Tag }}-amd64'
- 'goreleaser/goreleaser:{{ .Tag }}-arm64v8'
- manifest_template: 'ghcr.io/goreleaser/goreleaser:{{ .Tag }}'
image_templates:
- 'ghcr.io/goreleaser/goreleaser:{{ .Tag }}-amd64'
- 'ghcr.io/goreleaser/goreleaser:{{ .Tag }}-arm64v8'
- manifest_template: 'goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}'
image_templates:
- 'goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-amd64'
- 'goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-arm64v8'
- manifest_template: 'ghcr.io/goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}'
image_templates:
- 'ghcr.io/goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-amd64'
- 'ghcr.io/goreleaser/goreleaser:v{{ .Major }}.{{ .Minor }}-arm64v8'
- manifest_template: 'goreleaser/goreleaser:latest'
image_templates:
- 'goreleaser/goreleaser:latest-amd64'
- 'goreleaser/goreleaser:latest-arm64v8'
- manifest_template: 'ghcr.io/goreleaser/goreleaser:latest'
image_templates:
- 'ghcr.io/goreleaser/goreleaser:latest-amd64'
- 'ghcr.io/goreleaser/goreleaser:latest-arm64v8'
archives:
- name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}'
replacements:
Expand Down
3 changes: 2 additions & 1 deletion Dockerfile
@@ -1,4 +1,5 @@
FROM golang:1.15-alpine
ARG ARCH
FROM ${ARCH}/golang:1.15-alpine

RUN apk add --no-cache bash \
curl \
Expand Down
3 changes: 2 additions & 1 deletion Dockerfile.cgo
@@ -1,4 +1,5 @@
FROM golang:1.15-alpine
ARG ARCH
FROM ${ARCH}/golang:1.15-alpine

RUN apk add --no-cache bash \
build-base \
Expand Down

0 comments on commit 1c46891

Please sign in to comment.