いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Task (go-task) メモ-02 (タスクファイル, Taskfile.yml)

https://taskfile.dev/img/logo.svg

概要

前回はインストールについて書いたので、今回は最も大事なタスクファイルについて。

Task では、実行してほしいタスクを定義したファイルを作って指定します。

そのファイル名はデフォルトでは Taskfile.yml または Taskfile.yaml です。

makeでいうMakefileですね。

Home | Task

上記を見ると、Taskfile.yml って書いているので大抵の人はこのファイル名を使っています。

中身ですが、最低限必要な部分は以下です。

  • version
  • tasks
    • default
      • cmds

こんな感じです。

# https://taskfile.dev

################################################################
# バージョン指定
################################################################
version: '3'

################################################################
# タスク定義
################################################################
tasks:
  ##############################################################
  # default という名称のタスクはCLIにてタスク名を
  # 指定されなかった場合に暗黙で実行されるタスク
  ##############################################################
  default:
    cmds:
      # コマンドは複数指定することが出来る
      - echo helloworld
      - echo $PATH

cmdsの下には好きなだけコマンドを列挙することが出来ます。書いたものを順に実行してくれます。

実行は Taskfile.yml が存在する場所で

$ task

と実行すると、Taskfile.yml の default で定義されている部分が実行されます。(デフォルトターゲット)

ターゲットは好きなだけ増やせます。Goとかで作業している場合、個人的にはよくこんな風なのを使っています。

version: "3"

tasks:
  init:
    cmds:
      - go mod init app
      - go get -u github.com/devlights/gomy@latest
      - gp open main.go
  fmt:
    cmds:
      - goimports -w .
  vet:
    cmds:
      - go vet ./...
      - staticcheck ./...
  lint:
    cmds:
      - revive -formatter stylish ./...
  run:
    cmds:
      - go mod tidy
      - go run main.go
  version:
    cmds:
      - go version
  clean:
    cmds:
      - rm go.* *.go

参考情報

taskfile.dev

github.com

engineer.retty.me

zenn.dev

zenn.dev


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。