いろいろ備忘録日記

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

Task (go-task) メモ-10 (他のタスクファイルのinclude)

概要

以下、自分用のメモです。

Task での他のタスクファイルをincludeする方法

Makeなどと同様に他のタスクファイルをincludeして、定義されているタスクを取り込んで利用可能です。

取込むには、トップレベルで includes: を指定します。

存在しない場合でも処理を止めたくない場合は、optional: true を指定する。

以下のようなファイル階層になっているとします。

$ tree 06.include/
06.include/
├── other
│   └── Taskfile.yml
├── other2
│   └── othertaskfile.yml
└── Taskfile.yml

2 directories, 3 files

上でメインのタスクファイルは直下の Taskfile.yml です。サブディレクトリの下にいるタスクファイルをincludeして利用します。

サブディレクトリの下に配置しているタスクファイルは以下の通り。

other/Taskfile.yml

version: "3"

tasks:
  task:
    cmds:
      - echo 'task1'

other2/othertaskfile.yml

version: "3"

tasks:
  task:
    cmds:
      - echo 'task2'

メインのタスクファイルは以下のようになっています。

Taskfile.yml

version: "3"

includes:
  other1: ./other
  other2: ./other2/othertaskfile.yml
  other3:
    taskfile: ./other3/Taskfile.yml
    optional: true

tasks:
  default:
    cmds:
      - task: other1:task
      - task: other2:task

実行すると以下のようになります。

$ task -d 06.include/
task: [other1:task] echo 'task1'
task1
task: [other2:task] echo 'task2'
task2

github.com

参考情報

taskfile.dev

github.com

engineer.retty.me

zenn.dev

zenn.dev


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

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