version: 2

gitea_urls:
  api: "{{ if index .Env \"GITEA_API_URL\" }}{{ .Env.GITEA_API_URL }}{{ else }}https://gitea.lerkolabs.com/api/v1{{ end }}"
  download: https://gitea.lerkolabs.com

release:
  gitea:
    owner: lerkolabs
    name: uptop
  prerelease: auto

builds:
  - main: ./cmd/uptop
    binary: uptop
    env:
      - CGO_ENABLED=0
    goos:
      - linux
      - darwin
      - windows
    goarch:
      - amd64
      - arm64
    ldflags:
      - -s -w
      - -X main.version={{ .Version }}
      - -X main.commit={{ .Commit }}
      - -X main.date={{ .Date }}
    flags:
      - -trimpath

archives:
  - formats: [tar.gz]
    name_template: "{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}"
    format_overrides:
      - goos: windows
        formats: [zip]

checksum:
  name_template: checksums.txt

nfpms:
  - package_name: uptop
    file_name_template: "{{ .ConventionalFileName }}"
    vendor: LerkoLabs
    homepage: https://gitea.lerkolabs.com/lerkolabs/uptop
    maintainer: Tyler Koenig <tyler@lerkolabs.com>
    description: Self-hosted uptime monitoring with a TUI over SSH
    license: MIT
    section: net
    priority: optional
    formats:
      - deb
      - rpm
    bindir: /usr/bin
    contents:
      - src: ./LICENSE
        dst: /usr/share/doc/uptop/LICENSE
        type: doc

brews:
  - name: uptop
    repository:
      owner: lerkolabs
      name: homebrew-tap
      token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
    url_template: "https://github.com/lerkolabs/uptop/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
    commit_author:
      name: lerkolabs-bot
      email: bot@lerkolabs.com
    homepage: https://github.com/lerkolabs/uptop
    description: Self-hosted uptime monitoring with a TUI over SSH
    license: MIT
    install: |
      bin.install "uptop"
    test: |
      system bin/"uptop", "version"

# Changelog generation must stay enabled: the --release-notes flag is consumed
# by the changelog pipe, so disabling it silently drops the git-cliff notes
# (empty release body on v0.1.0-rc.1). With --release-notes set, GoReleaser
# skips its own generation and uses the file.
