From 9e8f6210209a909a92f2995894bec2bd269f5a4d Mon Sep 17 00:00:00 2001 From: Joris Coenen Date: Fri, 23 Apr 2021 18:40:15 +0200 Subject: [PATCH] Use docker buildx for building and pushing images This has the benefit that every tag only shows up as one image. With goreleaser, multiple images were shipped --- .github/workflows/release.yml | 37 +++++++++++++++++++++++------------ Dockerfile | 2 -- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 990afa4..2f3395c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,9 +1,9 @@ -name: goreleaser +name: release on: push: tags: - - '*' + - 'v*' jobs: goreleaser: @@ -16,6 +16,18 @@ jobs: uses: actions/checkout@v2 with: fetch-depth: 0 + - + name: Docker meta + id: meta + uses: crazy-max/ghaction-docker-meta@v2 + with: + images: | + 1password/onepassword-operator + # Publish image for x.y.z and x.y + # The latest tag is automatically added for semver tags + tags: | + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} - name: Set up QEMU uses: docker/setup-qemu-action@v1 @@ -29,15 +41,14 @@ jobs: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Set up Go - uses: actions/setup-go@v2 + name: Build and push + uses: docker/build-push-action@v2 with: - go-version: 1.15 - - - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v2 - with: - version: latest - args: release --rm-dist - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + context: . + file: Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + build-args: | + operator_version=${{ github.event.ref }} diff --git a/Dockerfile b/Dockerfile index 5d1df61..ce8e25f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,8 +14,6 @@ COPY vendor/ vendor/ # Build ARG operator_version=dev RUN CGO_ENABLED=0 \ - GOOS=linux \ - GOARCH=amd64 \ GO111MODULE=on \ go build \ -ldflags "-X version.Version=$operator_version" \