rksoftware

Visual Studio とか C# とかが好きです

CakeBuild でタスクの中でタスクを実行する

今回のスクリプトは良くないスクリプトだと、私のエンジニア勘が告げています。

■ 今回実行するスクリプト

var target = Argument("target", "Default");

Task("Default").Does(() =>{ Information("Hello World!"); });

Task("cs").Does(() => { Information("Hello C#!"); });

Task("both").Does(() => { RunTarget("Default"); RunTarget("cs"); });

RunTarget(target);

Defaultcsboth の3つのタスクを定義しています。
その中で both の中で

RunTarget("Default"); RunTarget("cs");

と書いて、Defaultcs のタスクを実行しています。

both を実行してみる

>.\tools\Cake\Cake -target=both

========================================
both
========================================

========================================
Default
========================================
Hello World!

Task                          Duration
--------------------------------------------------
Default                       00:00:00.0063018
--------------------------------------------------
Total:                        00:00:00.0063018

========================================
cs
========================================
Hello C#!

Task                          Duration
--------------------------------------------------
cs                            00:00:00.0065491
--------------------------------------------------
Total:                        00:00:00.0065491

Task                          Duration
--------------------------------------------------
both                          00:00:00.0564927
--------------------------------------------------
Total:                        00:00:00.0564927

書いたとおりの結果になりました。けれど、この使い方はおそらく正しくないです。書けば動くという確認としてやってみました。
ただしくは .IsDependentOn メソッドを使うのがよさそうです。

※CakeBuild を試してみた記事の目次です。