From c8bce6289814ffb4933c04eeb3448ab81d2d0bd0 Mon Sep 17 00:00:00 2001 From: "Denis N. Antonioli" <1205618+denisa@users.noreply.github.com> Date: Wed, 7 Jun 2023 03:26:22 -0700 Subject: [PATCH] Fix for 196: Multi-architecture image (#204) * 196: qemu * 196: multi-arch; see also https://blog.devgenius.io/goreleaser-build-multi-arch-docker-images-8dd9a7903675 --- .github/workflows/main.yml | 3 +++ .goreleaser.yml | 48 ++++++++++++++++++++++++++++++++++---- 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6d4a4b52..1bb267b9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -38,6 +38,9 @@ jobs: with: fetch-depth: 0 # https://github.com/goreleaser/goreleaser-action/issues/56 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 + - name: goreleaser run: | echo "${{ github.token }}" | docker login https://ghcr.io -u ${GITHUB_ACTOR} --password-stdin diff --git a/.goreleaser.yml b/.goreleaser.yml index 820d7182..3d08bcd7 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -32,23 +32,63 @@ archives: dockers: - image_templates: - - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest' - - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}' - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}-amd64' + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest-amd64' dockerfile: Dockerfile + use: buildx build_flag_templates: + - "--pull" - "--platform=linux/amd64" goos: linux goarch: amd64 - image_templates: - - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest-alpine' - - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}-alpine' + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}-arm64' + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest-arm64' + dockerfile: Dockerfile + use: buildx + build_flag_templates: + - "--pull" + - "--platform=linux/arm64" + goos: linux + goarch: arm64 + - image_templates: - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}-amd64-alpine' + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest-amd64-alpine' dockerfile: Dockerfile-alpine + use: buildx build_flag_templates: + - "--pull" - "--platform=linux/amd64" goos: linux goarch: amd64 + - image_templates: + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}-arm64-alpine' + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest-arm64-alpine' + dockerfile: Dockerfile-alpine + use: buildx + build_flag_templates: + - "--pull" + - "--platform=linux/arm64" + goos: linux + goarch: arm64 + +docker_manifests: + - name_template: 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}' + image_templates: + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}-amd64' + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}-arm64' + - name_template: 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest' + image_templates: + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest-amd64' + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest-arm64' + - name_template: 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest-alpine' + image_templates: + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest-amd64-alpine' + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:latest-arm64-alpine' + - name_template: 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}-alpine' + image_templates: + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}-amd64-alpine' + - 'ghcr.io/{{.Env.GIT_OWNER}}/kubeconform:{{ .Tag }}-arm64-alpine' checksum: name_template: 'CHECKSUMS'