From 16947389a689eabdb31838a104107af0b1c616a0 Mon Sep 17 00:00:00 2001 From: Mikhail Swift Date: Mon, 22 Jul 2024 12:46:21 -0400 Subject: [PATCH] chore(ci): build images with dockerfile instead of ko Our Dockerfile includes our migrations and Atlas to execute those migrations. However, the public image we are pushing is built with Ko and excludes these files/tools. This commit switches gorelease to build the image with the included Dockerfile. Signed-off-by: Mikhail Swift --- .github/workflows/pipeline.yml | 6 ++++ .goreleaser.yaml | 58 +++++++++++++++++++++++++++------- 2 files changed, 53 insertions(+), 11 deletions(-) diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index c3290905..e1968316 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -86,6 +86,12 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Download GoReleaser run: go install github.com/goreleaser/goreleaser@v1.23.0 diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 101e6b80..1da92dd2 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -74,18 +74,54 @@ release: prerelease: auto github: owner: "{{ .Env.GITHUB_REPOSITORY_OWNER }}" +dockers: + - image_templates: + - "ghcr.io/in-toto/archivista:{{ .Version }}-amd64" + use: buildx + build_flag_templates: + - "--pull" + - "--platform=linux/amd64" + extra_files: + - "archivista.graphql" + - "ent.graphql" + - "ent.resolvers.go" + - "entrypoint.sh" + - "gen.go" + - "generated.go" + - "go.mod" + - "go.sum" + - "resolver.go" + - "ent" + - "cmd" + - "ent" + - "pkg" + - image_templates: + - "ghcr.io/in-toto/archivista:{{ .Version }}-arm64" + use: buildx + build_flag_templates: + - "--pull" + - "--platform=linux/arm64" + extra_files: + - "archivista.graphql" + - "ent.graphql" + - "ent.resolvers.go" + - "entrypoint.sh" + - "gen.go" + - "generated.go" + - "go.mod" + - "go.sum" + - "resolver.go" + - "ent" + - "cmd" + - "ent" + - "pkg" + goarch: arm64 +docker_manifests: + - name_template: "ghcr.io/in-toto/archivista:{{ .Version }}" + image_templates: + - "ghcr.io/in-toto/archivista:{{ .Version }}-amd64" + - "ghcr.io/in-toto/archivista:{{ .Version }}-arm64" kos: - - repository: ghcr.io/in-toto/archivista - id: archivista - build: archivista - tags: - - '{{.Version}}' - bare: true - preserve_import_paths: false - creation_time: '{{.CommitTimestamp}}' - platforms: - - linux/amd64 - - linux/arm64 - repository: ghcr.io/in-toto/archivistactl id: archivistactl build: archivistactl