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 }}"