# This is an example .goreleaser.yml file with some sensible defaults.
# Make sure to check the documentation at https://goreleaser.com
# before:
#   hooks:
#     # You may remove this if you don't use go modules.
#     # - go mod tidy
#     # you may remove this if you don't need go generate
#     # - go generate ./...
version: 2.0
builds:
  - id: protoconf
    env:
      - CGO_ENABLED=0
    ldflags:
      - -s -w -X github.com/protoconf/protoconf/consts.Version={{.Version}}
    goos:
      - linux
      # - windows
      - darwin
      # - freebsd
      # - openbsd
      # - solaris
    main: ./cmd/protoconf
checksum:
  name_template: "checksums.txt"
snapshot:
  name_template: "{{ incpatch .Version }}-next"
changelog:
  sort: asc
  filters:
    exclude:
      - "^docs:"
      - "^test:"
      - "^fix(deps):"
brews:
  - # Name template of the recipe
    # Default to project name
    name: protoconf

    repository:
      owner: protoconf
      name: homebrew-tap

      token: "{{ .Env.DEPLOY_GITHUB_TOKEN }}"

    # Git author used to commit to the repository.
    # Defaults are shown.
    commit_author:
      name: goreleaserbot
      email: goreleaser@carlosbecker.com

    # The project name and current git tag are used in the format string.
    commit_msg_template: "Brew formula update for {{ .ProjectName }} version {{ .Tag }}"

    # Folder inside the repository to put the formula.
    # Default is the root folder.
    directory: Formula

    # Your app's homepage.
    # Default is empty.
    homepage: "https://www.protoconf.dev/"

    # Template of your app's description.
    # Default is empty.
    description: "Configuration as Code framework based on protobuf and Starlark."

    # SPDX identifier of your app's license.
    # Default is empty.
    license: "MIT"
dockers:
  - id: protoconf-docker
    ids:
      - protoconf
    image_templates:
      - "protoconf/protoconf:latest"
      - "protoconf/protoconf:{{ .Tag }}"
      - "protoconf/protoconf:v{{ .Major }}"
      - "protoconf/protoconf:v{{ .Major }}.{{ .Minor }}"
      - "ghcr.io/protoconf/protoconf:latest"
      - "ghcr.io/protoconf/protoconf:{{ .Tag }}"
      - "ghcr.io/protoconf/protoconf:{{ .Major }}"
      - "ghcr.io/protoconf/protoconf:{{ .Major }}.{{ .Minor }}"
    dockerfile: docker/Dockerfile
    build_flag_templates:
      - "--pull"
      - "--label=org.opencontainers.image.created={{.Date}}"
      - "--label=org.opencontainers.image.title={{.ProjectName}}"
      - "--label=org.opencontainers.image.revision={{.FullCommit}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--platform=linux/amd64"