# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
version: 2

builds:
  - binary: task
    main: ./cmd/task
    goos:
      - windows
      - darwin
      - linux
      - freebsd
    goarch:
      - '386'
      - amd64
      - arm
      - arm64
      - riscv64
    goarm:
      - '6'
    ignore:
      - goos: darwin
        goarch: '386'
      - goos: darwin
        goarch: riscv64
      - goos: windows
        goarch: riscv64
    env:
      - CGO_ENABLED=0
    mod_timestamp: '{{ .CommitTimestamp }}'
    flags:
      - -trimpath
    ldflags:
      - "-s -w"
      - "{{if .IsNightly}}-X github.com/go-task/task/v3/internal/version.version={{.Version}}{{end}}"

gomod:
  proxy: true

archives:
  - name_template: '{{.Binary}}_{{.Os}}_{{.Arch}}'
    files:
      - README.md
      - LICENSE
      - completion/**/*
    format_overrides:
      - goos: windows
        formats: [zip]

git:
  ignore_tags:
    - "{{if not .IsNightly}}nightly{{end}}"

snapshot:
  version_template: '{{.Version}}'

checksum:
  name_template: 'task_checksums.txt'

nfpms:
  - vendor: Task
    homepage: https://taskfile.dev
    maintainer: The Task authors <task@taskfile.dev>
    description: Simple task runner written in Go
    section: golang
    license: MIT
    conflicts:
      - taskwarrior
    formats:
      - deb
      - rpm
      - apk
    file_name_template: '{{.ProjectName}}_{{.Version}}_{{.Os}}_{{.Arch}}'
    contents:
      - src: completion/bash/task.bash
        dst: /etc/bash_completion.d/task
      - src: completion/fish/task.fish
        dst: /usr/share/fish/completions/task.fish
      - src: completion/zsh/_task
        dst: /usr/local/share/zsh/site-functions/_task

brews:
  - name: go-task
    description: Task runner / simpler Make alternative written in Go
    license: MIT
    homepage: https://taskfile.dev
    directory: Formula
    repository:
      owner: go-task
      name: homebrew-tap
    test: system "#{bin}/task", "--help"
    install: |-
      bin.install "task"
      bash_completion.install "completion/bash/task.bash" => "task"
      zsh_completion.install "completion/zsh/_task" => "_task"
      fish_completion.install "completion/fish/task.fish"
    commit_author:
      name: task-bot
      email: 106601941+task-bot@users.noreply.github.com

winget:
  - name: Task
    publisher: Task
    short_description: A task runner / simpler Make alternative written in Go
    description: Task is a task runner / build tool that aims to be simpler and easier to use than, for example, GNU Make.
    license: MIT
    homepage: https://taskfile.dev/
    publisher_url: https://taskfile.dev/
    publisher_support_url: https://github.com/go-task/task/issues
    package_identifier: Task.Task
    commit_author:
      name: task-bot
      email: 106601941+task-bot@users.noreply.github.com
    commit_msg_template: 'chore: release {{.PackageIdentifier}} {{.Tag}}'
    release_notes_url: https://github.com/go-task/task/releases/tag/{{.Tag}}
    tags:
      - build
      - build-tool
      - devops
      - go
      - make
      - makefile
      - runner
      - task
      - task-runner
      - taskfile
      - tool
    repository:
      owner: go-task
      name: winget-pkgs
      branch: 'task-{{.Version}}'
      pull_request:
        enabled: true
        draft: false
        check_boxes: true
        base:
          owner: microsoft
          name: winget-pkgs
          branch: master
        body: |
          /cc @andreynering @pd93 @vmaerten


npms:
  - name: "@go-task/cli"
    repository: "git+https://github.com/go-task/task.git"
    bugs: https://github.com/go-task/task/issues
    description: A task runner / simpler Make alternative written in Go
    homepage: https://taskfile.dev
    license: MIT
    author: "The Task authors"
    access: public
    keywords:
      - "task"
      - "taskfile"
      - "build-tool"
      - "task-runner"


cloudsmiths:
  - organization: "task"
    repository: "{{if not .IsNightly}}task{{end}}"
    formats:
      - deb
      - rpm
      - apk
    distributions:
      deb:
        - "any-distro/any-version"
      rpm:
        - "any-distro/any-version"
      alpine:
        - "alpine/any-version"
    component: main
    republish: true
