TL;DR

Make に影響を受けたビルドツール Task の設定ファイル。コマンド、依存関係、入力を YAML(Taskfile.yml)で定義する。

なぜ必要か

タスクを YAML で書くので、チームの誰もが読める。同じ Taskfile を Linux、macOS、Windows のどこでも、ローカルでも CI でも実行できる。ソースと生成物を追跡し、最新のものは処理を飛ばせる。

仕組み

Taskfile.yml の tasks にタスクを定義し、task <タスク名> で実行する。task --list で定義済みのタスクを一覧できる。deps に書いたタスクは先に実行される。

例

task build を実行すると、先に test が走り、そのあとバイナリをビルドする。

version: "3"
 
vars:
  APP: '{{.APP | default "my-app"}}'
 
tasks:
  build:
    desc: Test and build {{.APP}}
    aliases: [b]
    deps: [test]
    cmds:
      - go build -o bin/{{.APP}} .
 
  test:
    preconditions:
      - sh: command -v go
        msg: "Install Go to test and build this project."
    cmds:
      - go test ./...

出典