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

builds:
  - id: default
    binary: acorn
    env:
      - CGO_ENABLED=0
    goos:
      - linux
      - windows
      - darwin
    goarch:
      - amd64
      - arm64
    ignore:
      - goos: windows
        goarch: arm64
    tags:
      - netgo
    flags:
      - -trimpath
    ldflags:
      - -s
      - -w
      - -X "github.com/acorn-io/runtime/pkg/version.Tag=v{{ .Version }}"

universal_binaries:
  - id: mac
    ids:
      - default
    name_template: acorn
    replace: true
    hooks:
      post:
        - cmd: ./tools/notarize "{{ .Path }}" "acorn-v{{ .Version }}-macOS-universal"
          output: true
          env:
            - 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 }}
            - AC_P12={{ if index .Env "AC_P12" }}{{ .Env.AC_P12 }}{{ end }}
            - AC_P12_PASSWORD={{ if index .Env "AC_P12_PASSWORD" }}{{ .Env.AC_P12_PASSWORD }}{{ end }}
            - AC_ISSUER_ID={{ if index .Env "AC_ISSUER_ID" }}{{ .Env.AC_ISSUER_ID }}{{ end }}
            - AC_KEY_ID={{ if index .Env "AC_KEY_ID" }}{{ .Env.AC_KEY_ID }}{{ end }}
            - AC_PRIVATE_KEY={{ if index .Env "AC_PRIVATE_KEY" }}{{ .Env.AC_PRIVATE_KEY }}{{ end }}

archives:
  - id: default
    builds:
      - default
      - mac
    name_template: 'acorn-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/*-macOS-universal.zip"

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: runtime
  prerelease: auto
  extra_files:
    - glob: ./cosign.pub
    - glob: "./releases/*-macOS-universal.zip"

brews:
  - description: "Acorn CLI"
    name: acorn
    install: |
      bin.install "acorn"
    homepage: "https://acorn.io"
    license: "Apache 2.0"
    skip_upload: false
    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/runtime: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/runtime"
      - "--platform=linux/amd64"
    extra_files:
      - scripts/acorn-helper-init
      - scripts/acorn-job-get-output
      - scripts/acorn-job-helper-init
      - scripts/acorn-job-helper-shutdown
      - scripts/ds-containerd-config-path-entry
      - scripts/setup-binfmt
  - use: buildx
    goos: linux
    goarch: arm64
    dockerfile: Dockerfile
    image_templates:
      - ghcr.io/acorn-io/runtime: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/runtime"
      - "--platform=linux/arm64"
    extra_files:
      - scripts/acorn-helper-init
      - scripts/acorn-job-get-output
      - scripts/acorn-job-helper-init
      - scripts/acorn-job-helper-shutdown
      - scripts/ds-containerd-config-path-entry
      - scripts/setup-binfmt

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

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