github.com/kubeshop/testkube@v1.17.23/goreleaser_files/.goreleaser-docker-build-api.yml (about) 1 project_name: testkube-api-server 2 3 env: 4 # Goreleaser always uses the docker buildx builder with name "default"; see 5 # https://github.com/goreleaser/goreleaser/pull/3199 6 # To use a builder other than "default", set this variable. 7 # Necessary for, e.g., GitHub actions cache integration. 8 - DOCKER_REPO={{ if index .Env "DOCKER_REPO" }}{{ .Env.DOCKER_REPO }}{{ else }}kubeshop{{ end }} 9 - DOCKER_BUILDX_BUILDER={{ if index .Env "DOCKER_BUILDX_BUILDER" }}{{ .Env.DOCKER_BUILDX_BUILDER }}{{ else }}default{{ end }} 10 # Setup to enable Docker to use, e.g., the GitHub actions cache; see 11 # https://docs.docker.com/build/building/cache/backends/ 12 # https://github.com/moby/buildkit#export-cache 13 - DOCKER_BUILDX_CACHE_FROM={{ if index .Env "DOCKER_BUILDX_CACHE_FROM" }}{{ .Env.DOCKER_BUILDX_CACHE_FROM }}{{ else }}type=registry{{ end }} 14 - DOCKER_BUILDX_CACHE_TO={{ if index .Env "DOCKER_BUILDX_CACHE_TO" }}{{ .Env.DOCKER_BUILDX_CACHE_TO }}{{ else }}type=inline{{ end }} 15 # Build image with commit sha tag 16 - IMAGE_TAG_SHA={{ if index .Env "IMAGE_TAG_SHA" }}{{ .Env.IMAGE_TAG_SHA }}{{ else }}{{ end }} 17 builds: 18 - id: "linux" 19 main: ./cmd/api-server 20 binary: testkube-api-server 21 env: 22 - CGO_ENABLED=0 23 goos: 24 - linux 25 goarch: 26 - amd64 27 - arm64 28 mod_timestamp: "{{ .CommitTimestamp }}" 29 ldflags: 30 -X github.com/kubeshop/testkube/pkg/version.Version={{ .Version }} 31 -X github.com/kubeshop/testkube/pkg/version.Commit={{ .FullCommit }} 32 -X github.com/kubeshop/testkube/internal/app/api/v1.SlackBotClientID={{ .Env.SLACK_BOT_CLIENT_ID}} 33 -X github.com/kubeshop/testkube/internal/app/api/v1.SlackBotClientSecret={{ .Env.SLACK_BOT_CLIENT_SECRET }} 34 -X github.com/kubeshop/testkube/pkg/tcl/testworkflowstcl/testworkflowprocessor/constants.DefaultImage={{ .Env.BUSYBOX_IMAGE }} 35 -X github.com/kubeshop/testkube/pkg/telemetry.TestkubeMeasurementID={{ .Env.ANALYTICS_TRACKING_ID }} 36 -X github.com/kubeshop/testkube/pkg/telemetry.TestkubeMeasurementSecret={{ .Env.ANALYTICS_API_KEY }} 37 -X github.com/kubeshop/testkube/pkg/telemetry.SegmentioKey={{ .Env.SEGMENTIO_KEY }} 38 -X github.com/kubeshop/testkube/pkg/telemetry.CloudSegmentioKey={{ .Env.CLOUD_SEGMENTIO_KEY }} 39 -X github.com/kubeshop/testkube/pkg/telemetry.CloudSegmentioKey={{ .Env.BUSYBOX_IMAGE }} 40 dockers: 41 - dockerfile: ./build/api-server/Dockerfile 42 use: buildx 43 goos: linux 44 goarch: amd64 45 image_templates: 46 - "{{ if .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-api-server:{{ .ShortCommit }}{{ end }}" 47 - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-api-server:{{ .Version }}-amd64{{ end }}" 48 build_flag_templates: 49 - "--platform=linux/amd64" 50 - "--label=org.opencontainers.image.title={{ .ProjectName }}" 51 - "--label=org.opencontainers.image.created={{ .Date}}" 52 - "--label=org.opencontainers.image.revision={{ .FullCommit }}" 53 - "--label=org.opencontainers.image.version={{ .Version }}" 54 - "--builder={{ .Env.DOCKER_BUILDX_BUILDER }}" 55 - "--cache-to={{ .Env.DOCKER_BUILDX_CACHE_TO }}" 56 - "--cache-from={{ .Env.DOCKER_BUILDX_CACHE_FROM }}" 57 - "--build-arg=ALPINE_IMAGE={{ .Env.ALPINE_IMAGE }}" 58 - "--build-arg=BUSYBOX_IMAGE={{ .Env.BUSYBOX_IMAGE }}" 59 60 - dockerfile: ./build/api-server/Dockerfile 61 use: buildx 62 goos: linux 63 goarch: arm64 64 image_templates: 65 - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-api-server:{{ .Version }}-arm64v8{{ end }}" 66 build_flag_templates: 67 - "--platform=linux/arm64/v8" 68 - "--label=org.opencontainers.image.created={{ .Date }}" 69 - "--label=org.opencontainers.image.title={{ .ProjectName }}" 70 - "--label=org.opencontainers.image.revision={{ .FullCommit }}" 71 - "--label=org.opencontainers.image.version={{ .Version }}" 72 - "--builder={{ .Env.DOCKER_BUILDX_BUILDER }}" 73 - "--cache-to={{ .Env.DOCKER_BUILDX_CACHE_TO }}" 74 - "--cache-from={{ .Env.DOCKER_BUILDX_CACHE_FROM }}" 75 - "--build-arg=ALPINE_IMAGE={{ .Env.ALPINE_IMAGE }}" 76 - "--build-arg=BUSYBOX_IMAGE={{ .Env.BUSYBOX_IMAGE }}" 77 78 docker_manifests: 79 - name_template: "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-api-server:{{ .Version }}{{ end }}" 80 image_templates: 81 - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-api-server:{{ .Version }}-amd64{{ end }}" 82 - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-api-server:{{ .Version }}-arm64v8{{ end }}" 83 - name_template: "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-api-server:latest{{ end }}" 84 image_templates: 85 - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-api-server:{{ .Version }}-amd64{{ end }}" 86 - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-api-server:{{ .Version }}-arm64v8{{ end }}" 87 88 89 release: 90 disable: true 91 92 docker_signs: 93 - cmd: cosign 94 artifacts: all 95 output: true 96 args: 97 - "sign" 98 - "${artifact}" 99 - "--yes" 100 101 snapshot: 102 name_template: "{{ .ShortCommit }}"