dist: releases
snapshot:
  name_template: '{{ trimprefix .Summary "v" }}'

builds:
  - id: default
    env:
      - CGO_ENABLED=0
    goos:
      - linux
      - windows
      - darwin
    goarch:
      - amd64
      - arm64
      - arm
    goarm:
      - "7"
    ignore:
      - goos: windows
        goarch: arm64
      - goos: windows
        goarch: arm
    ldflags:
      - -s
      - -w
      - -X "github.com/acorn-io/acorn/pkg/version.Tag=v{{ .Version }}"
      - -X "github.com/acorn-io/acorn/pkg/config.AcornDNSEndpointDefault={{ .Env.ACORN_DNS_ENDPOINT }}"

universal_binaries:
  - id: mac
    ids:
      - default
    replace: true
    hooks:
      post:
        - cmd: ./tools/notarize "{{ .Path }}" "{{ .ProjectName }}-v{{ .Version }}-macOS-universal"
          output: true
          env:
            - SIGN={{ if index .Env "SIGN" }}1{{ end }}
            - NOTARIZE={{ if index .Env "NOTARIZE" }}{{ .Env.NOTARIZE }}{{ end }}
            - AC_IDENTITY={{ if index .Env "AC_IDENTITY" }}{{ .Env.AC_IDENTITY }}{{ end }}
            - AC_PROVIDER={{ if index .Env "AC_PROVIDER" }}{{ .Env.AC_PROVIDER }}{{ end }}
            - AC_USERNAME={{ if index .Env "AC_USERNAME" }}{{ .Env.AC_USERNAME }}{{ end }}
            - AC_PASSWORD={{ if index .Env "AC_PASSWORD" }}{{ .Env.AC_PASSWORD }}{{ end }}

archives:
  - id: default
    builds:
      - default
      - mac
    name_template: "{{ .ProjectName }}-v{{ .Version }}-{{ if eq .Os \"darwin\" }}macOS-universal{{ else }}{{ .Os }}-{{ .Arch }}{{ .Arm }}{{ end }}"
    format_overrides:
      - goos: windows
        format: zip

checksum:
  name_template: "checksums.txt"
  extra_files:
    - glob: "./releases/*.dmg"

signs:
  - id: cosign
    cmd: cosign
    stdin: "{{ .Env.COSIGN_PASSWORD }}"
    args: ["sign-blob", "--key=cosign.key", "--output=${signature}", "${artifact}"]
    artifacts: checksum

changelog:
  use: github
  sort: asc
  filters:
    exclude:
      - "^docs:"
      - "^test:"
      - "^Merge pull request"

release:
  github:
    owner: acorn-io
    name: acorn
  prerelease: auto
  extra_files:
    - glob: ./cosign.pub
    - glob: "./releases/*.dmg"

brews:
  - description: "Acorn CLI"
    homepage: "https://acorn.io"
    license: "Apache 2.0"
    skip_upload: auto
    tap:
      owner: acorn-io
      name: homebrew-cli
      token: "{{ .Env.GH_PROJECT_TOKEN }}"

dockers:
  - use: buildx
    goos: linux
    goarch: amd64
    dockerfile: Dockerfile
    image_templates:
      - ghcr.io/acorn-io/acorn:v{{ .Version }}-amd64
    build_flag_templates:
      - "--target=goreleaser"
      - "--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}}"
      - "--label=org.opencontainers.image.source=https://github.com/acorn-io/acorn"
      - "--platform=linux/amd64"
    extra_files:
      - scripts/ds-containerd-config-path-entry
      - scripts/setup-binfmt
  - use: buildx
    goos: linux
    goarch: arm64
    dockerfile: Dockerfile
    image_templates:
      - ghcr.io/acorn-io/acorn:v{{ .Version }}-arm64
    build_flag_templates:
      - "--target=goreleaser"
      - "--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}}"
      - "--label=org.opencontainers.image.source=https://github.com/acorn-io/acorn"
      - "--platform=linux/arm64"
    extra_files:
      - scripts/ds-containerd-config-path-entry
      - scripts/setup-binfmt
  - use: buildx
    goos: linux
    goarch: arm
    goarm: "7"
    dockerfile: Dockerfile
    image_templates:
      - ghcr.io/acorn-io/acorn:v{{ .Version }}-arm32v7
    build_flag_templates:
      - "--target=goreleaser"
      - "--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}}"
      - "--label=org.opencontainers.image.source=https://github.com/acorn-io/acorn"
      - "--platform=linux/arm/v7"
    extra_files:
      - scripts/ds-containerd-config-path-entry
      - scripts/setup-binfmt

docker_manifests:
  - use: docker
    name_template: ghcr.io/acorn-io/acorn:v{{ .Version }}
    image_templates:
      - ghcr.io/acorn-io/acorn:v{{ .Version }}-amd64
      - ghcr.io/acorn-io/acorn:v{{ .Version }}-arm64
      - ghcr.io/acorn-io/acorn:v{{ .Version }}-arm32v7
  - use: docker
    name_template: ghcr.io/acorn-io/acorn:latest
    image_templates:
      - ghcr.io/acorn-io/acorn:v{{ .Version }}-amd64
      - ghcr.io/acorn-io/acorn:v{{ .Version }}-arm64
      - ghcr.io/acorn-io/acorn:v{{ .Version }}-arm32v7

docker_signs:
  - artifacts: all
    stdin: "{{ .Env.COSIGN_PASSWORD }}"
