# This is an example .goreleaser.yml file with some sensible defaults.
# Make sure to check the documentation at https://goreleaser.com

# The lines below are called `modelines`. See `:help modeline`
# Feel free to remove those if you don't want/need to use them.
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
# vim: set ts=2 sw=2 tw=0 fo=cnqoj

version: 2

before:
  hooks:
    - go mod tidy
    - go mod download
env:
    - CGO_ENABLED=0

nfpms:
  # note that this is an array of nfpm configs
  - #
    # ID of the nfpm config, must be unique.
    #
    # Default: 'default'.
    id: default

    # Name of the package.
    #
    # Default: ProjectName.
    # Templates: allowed.
    package_name: oneuptime-infrastructure-agent

    file_name_template: 'oneuptime-infrastructure-agent_{{ .Arch }}.{{ .Format }}'

    # Your app's vendor.
    vendor: HackerBay, Inc.

    # Your app's homepage.
    #
    # Default: inferred from global metadata.
    homepage: https:/oneuptime.com/

    # Your app's maintainer (probably you).
    #
    # Default: inferred from global metadata.
    maintainer: OneUptime Infrastructure Team <infra@oneuptime.com>

    # Your app's description.
    #
    # Default: inferred from global metadata.
    description: |-
      OneUptime Infrastructure Agent is a lightweight agent that collects system metrics and sends them to the OneUptime platform.

    # Your app's license.
    #
    # Default: inferred from global metadata.
    license: Apache 2.0

    # Formats to be generated.
    formats:
      - apk
      - deb
      - rpm
      - termux.deb
      - archlinux

    # Packages your package depends on. (overridable)
    dependencies:
      - git
      - bash
      - coreutils
      - systemd
  

builds:
  - binary: oneuptime-infrastructure-agent
    main: ./
    goos:
      - linux
      - windows
      - darwin
      - freebsd
      - openbsd
    goarch:
      - amd64
      - arm64
    goarm:
      - "6"
      - "7"
archives:
  - format: tar.gz
    # this name template makes the OS and Arch compatible with the results of `uname`.
    name_template: '{{ .Binary }}_{{ .Os }}_{{ .Arch }}'
    format_overrides:
      - goos: windows
        format: zip
changelog:
  sort: asc
  filters:
    exclude:
      - "^docs:"
      - "^test:"
