関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
これまでの Task に関する記事は上の関連記事をご参照ください。
Taskでは、Makeのように成果物を作成する際に不要なビルドを行わないように出来ます。
コンパイル結果を生成する場合のタスクなどに特に有用。
やり方は、以下のようにタスクを構築するだけです。
(タスクの名前は何でも良いです。以下ではbuildとしています)
build: cmds: - ビルドするためのコマンド sources: - 対象となるソース (例: ./*.go) generates: - 成果物の指定 (例: app{{exeExt}} exeExtは事前定義されている変数でOS毎に '' か '.exe' のようになります) method: 変更されたかどうかを判定する方法 (例: timestamp 他にもchecksumなどがあります)
サンプル
# https://taskfile.dev version: "3" tasks: default: deps: - build cmds: - ./app.exe build: cmds: - go build -o app.exe main.go sources: - ./*.go generates: - app{{exeExt}} method: timestamp clean: cmds: - rm -rf .task/ - rm -f app.exe
実行すると以下のようになります。
$ task task: [build] go build -o app.exe main.go task: [default] ./app.exe HELLO WORLD $ task task: Task "build" is up to date task: [default] ./app.exe HELLO WORLD
初回はビルドタスクが実行されていますが、2回目からは変更が無いので Task "build" is up to date
と表示されてスキップされていますね。
尚、本機能を利用するとデフォルトではタスクファイルがあるディレクトリに .task/
というディレクトリが生成され、その中にタイムスタンプなどの情報が保存されます。このディレクトリは .gitignore
に設定するようにしましょう。
参考情報
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。