# Visit https://goreleaser.com for documentation on how to customize this
# behavior.
before:
    hooks:
        # this is just an example and not a requirement for provider building/publishing
        - go mod tidy
builds:
    - env:
          # goreleaser does not work with CGO, it could also complicate
          # usage by users in CI/CD systems like Terraform Cloud where
          # they are unable to install libraries.
          - CGO_ENABLED=0
      mod_timestamp: '{{ .CommitTimestamp }}'
      flags:
          - -trimpath
      ldflags:
          - '-s -w -X main.version={{.Version}} -X main.commit={{.Commit}}'
      goos:
          - darwin
          - freebsd
          - linux
          - openbsd
          - windows
      goarch:
          - '386'
          - amd64
          - arm
          - arm64
      ignore:
          - goarch: arm
            goos: windows
          - goarch: arm64
            goos: freebsd
          - goarch: arm64
            goos: windows
          - goarch: arm64
            goos: openbsd
      binary: '{{ .ProjectName }}_v{{ .Version }}'
archives:
    - format: zip
      name_template: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}'
checksum:
    extra_files:
        - glob: 'terraform-registry-manifest.json'
          name_template: '{{ .ProjectName }}_{{ .Version }}_manifest.json'
    name_template: '{{ .ProjectName }}_{{ .Version }}_SHA256SUMS'
    algorithm: sha256
signs:
    - artifacts: checksum
      args:
          # if you are using this in a GitHub action or some other automated pipeline, you
          # need to pass the batch flag to indicate its not interactive.
          - '--batch'
          - '--local-user'
          - '{{ .Env.GPG_FINGERPRINT }}' # set this environment variable for your signing key
          - '--output'
          - '${signature}'
          - '--detach-sign'
          - '${artifact}'
release:
    extra_files:
        - glob: 'terraform-registry-manifest.json'
          name_template: '{{ .ProjectName }}_{{ .Version }}_manifest.json'
    # If you want to manually examine the release before its live, uncomment this line:
    # draft: true
changelog:
    skip: true
