github.com/kubeshop/testkube@v1.17.23/goreleaser_files/.goreleaser-docker-build-testworkflow-toolkit.yml (about)

     1  project_name: testkube-tw-toolkit
     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/tcl/testworkflow-toolkit
    20      binary: testworkflow-toolkit
    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        -s -w
    33  dockers:
    34    - dockerfile: ./build/testworkflow-toolkit/Dockerfile
    35      use: buildx
    36      goos: linux
    37      goarch: amd64
    38      image_templates:
    39        - "{{ if .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-tw-toolkit:{{ .ShortCommit }}{{ end }}"
    40        - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-tw-toolkit:{{ .Version }}-amd64{{ end }}"
    41      build_flag_templates:
    42        - "--platform=linux/amd64"
    43        - "--label=org.opencontainers.image.title={{ .ProjectName }}"
    44        - "--label=org.opencontainers.image.created={{ .Date}}"
    45        - "--label=org.opencontainers.image.revision={{ .FullCommit }}"
    46        - "--label=org.opencontainers.image.version={{ .Version }}"
    47        - "--builder={{ .Env.DOCKER_BUILDX_BUILDER }}"
    48        - "--cache-to={{ .Env.DOCKER_BUILDX_CACHE_TO }}"
    49        - "--cache-from={{ .Env.DOCKER_BUILDX_CACHE_FROM }}"
    50        - "--build-arg=ALPINE_IMAGE={{ .Env.ALPINE_IMAGE }}"
    51        - "--build-arg=BUSYBOX_IMAGE={{ .Env.BUSYBOX_IMAGE }}"
    52  
    53    - dockerfile: ./build/testworkflow-toolkit/Dockerfile
    54      use: buildx
    55      goos: linux
    56      goarch: arm64
    57      image_templates:
    58        - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-tw-toolkit:{{ .Version }}-arm64v8{{ end }}"
    59      build_flag_templates:
    60        - "--platform=linux/arm64/v8"
    61        - "--label=org.opencontainers.image.created={{ .Date }}"
    62        - "--label=org.opencontainers.image.title={{ .ProjectName }}"
    63        - "--label=org.opencontainers.image.revision={{ .FullCommit }}"
    64        - "--label=org.opencontainers.image.version={{ .Version }}"
    65        - "--builder={{ .Env.DOCKER_BUILDX_BUILDER }}"
    66        - "--cache-to={{ .Env.DOCKER_BUILDX_CACHE_TO }}"
    67        - "--cache-from={{ .Env.DOCKER_BUILDX_CACHE_FROM }}"
    68        - "--build-arg=ALPINE_IMAGE={{ .Env.ALPINE_IMAGE }}"
    69        - "--build-arg=BUSYBOX_IMAGE={{ .Env.BUSYBOX_IMAGE }}"
    70  
    71  docker_manifests:
    72    - name_template: "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-tw-toolkit:{{ .Version }}{{ end }}"
    73      image_templates:
    74        - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-tw-toolkit:{{ .Version }}-amd64{{ end }}"
    75        - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-tw-toolkit:{{ .Version }}-arm64v8{{ end }}"
    76    - name_template: "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-tw-toolkit:latest{{ end }}"
    77      image_templates:
    78        - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-tw-toolkit:{{ .Version }}-amd64{{ end }}"
    79        - "{{ if not .Env.IMAGE_TAG_SHA }}{{ .Env.DOCKER_REPO }}/testkube-tw-toolkit:{{ .Version }}-arm64v8{{ end }}"
    80  
    81  
    82  release:
    83    disable: true
    84  
    85  docker_signs:
    86    - cmd: cosign
    87      artifacts: all
    88      output: true
    89      args:
    90        - "sign"
    91        - "${artifact}"
    92        - "--yes"
    93  
    94  snapshot:
    95    name_template: "{{ .ShortCommit }}"