version: '2'

tasks:
  # compiles current source code and make "task" executable available on
  # $GOPATH/bin/task{.exe}
  install:
    desc: Installs Task
    cmds:
      - go install -v -ldflags="-w -s -X main.version={{.GIT_COMMIT}}" ./cmd/task

  dl-deps:
    desc: Downloads cli dependencies
    cmds:
      - go get -u github.com/golang/lint/golint
      - go get -u github.com/asticode/go-astitodo/astitodo
      - go get -u github.com/golang/dep/cmd/dep
      - if [ "$CI" != "1" ]; then go get -u github.com/goreleaser/goreleaser; fi

  update-deps:
    desc: Updates dependencies
    cmds:
      - dep ensure
      - dep ensure -update

  clean:
    desc: Cleans temp files and folders
    cmds:
      - rm -rf dist/

  lint:
    desc: Runs golint
    cmds:
      - golint {{.GO_PACKAGES}}
    silent: true

  test:
    desc: Runs test suite
    deps: [install]
    cmds:
      - go test {{.GO_PACKAGES}}

  # https://github.com/goreleaser/goreleaser
  release:
    desc: Release Task
    cmds:
      - goreleaser

  test-release:
    desc: Tests release process without publishing
    cmds:
      - goreleaser --snapshot

  todo:
    desc: Prints TODO comments present in the code
    cmds:
      - astitodo {{.GO_PACKAGES}}
    silent: true
