---
project_name: govmomi

builds:
  - id: govc
    goos: &goos-defs
      - linux
      - darwin
      - windows
      - freebsd
    goarch: &goarch-defs
      - amd64
      - arm
      - arm64
      - mips64le
    env:
      - CGO_ENABLED=0
      - PKGPATH=github.com/vmware/govmomi/govc/flags
    main: ./govc/main.go
    binary: govc
    ldflags:
      - "-X {{.Env.PKGPATH}}.BuildVersion={{.Version}} -X {{.Env.PKGPATH}}.BuildCommit={{.ShortCommit}} -X {{.Env.PKGPATH}}.BuildDate={{.Date}}"
  - id: vcsim
    goos: *goos-defs
    goarch: *goarch-defs
    env:
      - CGO_ENABLED=0
    main: ./vcsim/main.go
    binary: vcsim
    ldflags:
      - "-X main.buildVersion={{.Version}} -X main.buildCommit={{.ShortCommit}} -X main.buildDate={{.Date}}"

archives:
  - id: govcbuild
    builds:
      - govc
    name_template: "govc_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
    replacements: &replacements
      darwin: Darwin
      linux: Linux
      windows: Windows
      freebsd: FreeBSD
      amd64: x86_64
    format_overrides: &overrides
      - goos: windows
        format: zip
    files: &extrafiles
      - CHANGELOG.md
      - LICENSE.txt
      - README.md

  - id: vcsimbuild
    builds:
      - vcsim
    name_template: "vcsim_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
    replacements: *replacements
    format_overrides: *overrides
    files: *extrafiles

snapshot:
  name_template: "{{ .Tag }}-next"

checksum:
  name_template: "checksums.txt"

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

# upload disabled since it is maintained in homebrew-core
brews:
  - name: govc
    ids:
      - govcbuild
    tap:
      owner: govmomi
      name: homebrew-tap
      # TODO: create token in specified tap repo, add as secret to govmomi repo and reference in release workflow
      # token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
    # enable once we do fully automated releases
    skip_upload: true
    commit_author:
      name: Alfred the Narwhal
      email: cna-alfred@vmware.com
    folder: Formula
    homepage: "https://github.com/vmware/govmomi/blob/master/govc/README.md"
    description: "govc is a vSphere CLI built on top of govmomi."
    test: |
      system "#{bin}/govc version"
    install: |
      bin.install "govc"
  - name: vcsim
    ids:
      - vcsimbuild
    tap:
      owner: govmomi
      name: homebrew-tap
      # TODO: create token in specified tap repo, add as secret to govmomi repo and reference in release workflow
      # token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
    # enable once we do fully automated releases
    skip_upload: true
    commit_author:
      name: Alfred the Narwhal
      email: cna-alfred@vmware.com
    folder: Formula
    homepage: "https://github.com/vmware/govmomi/blob/master/vcsim/README.md"
    description: "vcsim is a vSphere API simulator built on top of govmomi."
    test: |
      system "#{bin}/vcsim -h"
    install: |
      bin.install "vcsim"

dockers:
  - image_templates:
      - "vmware/govc:{{ .Tag }}"
      - "vmware/govc:{{ .ShortCommit }}"
      - "vmware/govc:latest"
    dockerfile: Dockerfile.govc
    ids:
      - govc
    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}}"
      - "--label=org.opencontainers.image.url=https://github.com/vmware/govmomi"
      - "--platform=linux/amd64"
  - image_templates:
      - "vmware/vcsim:{{ .Tag }}"
      - "vmware/vcsim:{{ .ShortCommit }}"
      - "vmware/vcsim:latest"
    dockerfile: Dockerfile.vcsim
    ids:
      - vcsim
    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}}"
      - "--label=org.opencontainers.image.url=https://github.com/vmware/govmomi"
      - "--platform=linux/amd64"
