📄
taskfile.dist.yml を使う
tl;dr
- 前回書いたが、ファイル名を工夫する小ネタ
-
Taskfile.dist.yml
をリポジトリ(チーム)で使用し、Taskfile.yml
を個人で使用する
引用
The intention of having the .dist variants is to allow projects to have one committed version (.dist) while still allowing individual
users to override the Taskfile by adding an additional Taskfile.yml (which would be on .gitignore).
- Usage | Task
- 要は組織やチーム、リポジトリ固有のタスクを
Taskfile.dist.yml
にして、Taskfile.yml
を個人で調整に可能にすると便利だよ、ということ
解説
- go-task は優先度順にファイルを確認し、最初に見つかったファイルを使用する
-
Taskfile.yml
をリポジトリ(チーム)で使用してしまうと上書きしにくい -
Taskfile.dist.yml
をリポジトリで使用するタスクファイルにすることで、固有の処理はデフォルトのまま実行できる - 個人使用のタスクを追加したり、タスクを組み合わせたりする場合、
Taskfile.yml
を用意して、Taskfile.dist.yml
を include すると自由度が上がる
team-repo $ ls
Taskfile.dist.yml Taskfile.yml
team-repo $ t
task: Available tasks for this project:
* dist:summary: view summary of all tasks (aliases: dist:la)
* dist:test: task tests (aliases: dist:tt)
* summary: view summary of all tasks (aliases: la)
Taskfile.yml
# こんな感じで読み込む
includes:
dist:
taskfile: ./Taskfile.dist.yml
- 好きなaliasを付けてdistを呼び出せばどうとでもできる
- internal にすれば dist を非表示にもできる
-
.git/info/exclude
にTaskfile.yml
を追加してリポジトリの管理外にする - 別の個人用リポジトリに
Taskfile.repo.yml
のようにしておいて、シンボリックリンクをはればgit管理もできる
team-repo $ ll
合計 4
-rw-r--r-- 1 raki raki 1413 11月 24 07:36 Taskfile.dist.yml
lrwxrwxrwx 1 raki raki 33 11月 24 07:36 Taskfile.yml -> ../my-repo/Taskfile_team-repo.yml
- 発展させると自分が使う分だけを取捨選択して組み合わせるなど自由度高い
my-project-repo $ ls
Taskfile.backend.yml Taskfile.dist.yml Taskfile.frontend.yml Taskfile.infra.yml
my-project-repo $ t
task: Available tasks for this project:
* b:a: Clean,Build,Deploy backend
* backend:build: Build (aliases: backend:b)
* backend:clean: Clean (aliases: backend:c)
* backend:deploy: Deploy (aliases: backend:d)
* f:a: Clean,Build,Deploy frontend
* frontend:build: Build (aliases: frontend:b)
* frontend:clean: Clean (aliases: frontend:c)
* frontend:deploy: Deploy (aliases: frontend:d)
* i:a: Clean,Build,Deploy infra
* infra:build: Build (aliases: infra:b)
* infra:clean: Clean (aliases: infra:c)
* infra:deploy: Deploy (aliases: infra:d)
まとめ
- タスクファイル名を
Taskfile.dist.yml
にしておくと便利 - 個人的なタスクファイルを別リポジトリで管理しておいて、シンボリックリンクで
Taskfile.yml
にするととても便利 - include 時のキーをファイル名に(dist部分)にするとわかりやすい
Discussion