Cake でスクリプト内に複数のタスクを定義して、選択して実行する方法です。
■ スクリプト
こんな感じに、Default
と cs
というタスクを書きます。
var target = Argument("target", "Default"); Task("Default").Does(() =>{ Information("Hello World!"); }); Task("cs").Does(() => { Information("Hello C#!"); }); RunTarget(target);
■ build.ps1 の場合
build.ps1 -script [ スクリプトファイル名 ] -target [ タスク名 ]
で [ タスク名 ] のタスクを実行できます。[ スクリプトファイル名 ] は build.cake
の場合は省略できます。
build.ps1 -target [ タスク名 ]
■ 実行結果 Default
を実行する
> .\build.ps1 -target default Preparing to run build script... Running build script... ======================================== Default ======================================== Hello World! Task Duration -------------------------------------------------- Default 00:00:00.0203485 -------------------------------------------------- Total: 00:00:00.0203485
■ 実行結果 cs
を実行する
> .\build.ps1 -target cs Preparing to run build script... Running build script... ======================================== cs ======================================== Hello C#! Task Duration -------------------------------------------------- cs 00:00:00.0183951 -------------------------------------------------- Total: 00:00:00.0183951
■ タスクを指定しない場合
var target = Argument("target", "Default");
で書かれた、二つ目の引数のタスクが実行されます。
> .\build.ps1 Preparing to run build script... Running build script... ======================================== Default ======================================== Hello World! Task Duration -------------------------------------------------- Default 00:00:00.0185739 -------------------------------------------------- Total: 00:00:00.0185739
スクリプトを書き換えて
var target = Argument("target", "cs");
とすると
> .\build.ps1 Preparing to run build script... Running build script... ======================================== cs ======================================== Hello C#! Task Duration -------------------------------------------------- cs 00:00:00.0178635 -------------------------------------------------- Total: 00:00:00.0178635
となりました。
※CakeBuild を試してみた記事の目次です。