Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cake Build

C# で .NET で動作するビルドスクリプトが書ける Cake について

  • Login to see the comments

  • Be the first to like this

Cake Build

  1. 1. / 22 CakeBuild 1 城東.NET #34 2019年07月17日 石崎 充良
  2. 2. / 22 自己紹介 石崎 充良 ( @mishi_cs ) Microsoft MVP for Developer Technologies 言語: C# XAML 活動: ・JXUG (もくもく会) (connpass) ・城東.NET Users Group (connpass) ・C# もくもく会 (connpass) ※主に秋葉原 2
  3. 3. / 22 CakeBuild 3
  4. 4. / 22 公式サイト 4https://cakebuild.net/
  5. 5. / 22 公式サイト 5https://cakebuild.net/ ケーキとは Cake(C#Make)は、コードのコンパイル、ファイルやフォルダのコピー、単体 テストの実行、ファイルの圧縮、NuGetパッケージのビルドなどのタスク用のC# DSLを備えたクロスプラットフォームのビルド自動化システムです。 (機械翻訳)
  6. 6. / 22 動作環境 .NET Core 2.1 .NET Framework 4.6.1 Mono 5.12.0 6 複数プラットフォームで展開するのに適している
  7. 7. / 22 とりあえず動かして みる 7
  8. 8. / 22 公式サイトの手順 Windows の場合 PowerShell で スクリプトファイルを作って 先のPowerShellコマンドでダウンロードしたファイルを実行 8https://cakebuild.net/docs/tutorials/setting-up-a-new-project Invoke-WebRequest https://cakebuild.net/download/bootstrapper/windows -OutFile build.ps1 var target = Argument("target", "Default"); Task("Default") .Does(() => { Information("Hello World!"); }); RunTarget(target); ./build.ps1
  9. 9. / 22 実行結果 9 cakebuild> .build.ps1 Preparing to run build script... Running build script... ======================================== Default ======================================== Hello World! Task Duration -------------------------------------------------- Default 00:00:00.0179751 -------------------------------------------------- Total: 00:00:00.0179751
  10. 10. / 22 build.ps1 がやっていること ・https://dist.nuget.org/win-x86-commandline/latest/nuget.exe から nuget.exe をダウンロード ・https://cakebuild.net/download/bootstrapper/packages から packages.config をダウンロード ・nuget.exe と packages.config で cake の NuGet パッケージをダウン ロード ・NuGet パッケージ内の実行ファイルで build.cake スクリプト (名前は 固定) を実行 10
  11. 11. / 22 NuGet パッケージ 11
  12. 12. / 22 (一部を抜粋) 12 Cake.exe が実行ファイル
  13. 13. / 22 実行 Windows の場合 Mac、Linux の場合 13 .toolsCakeCake.exe build.cake mono ./tools/Cake/Cake.exe build.cake
  14. 14. / 22 chocolatey でインストール可 14https://chocolatey.org/packages?q=cake
  15. 15. / 22 Xamarin の ARCore サンプルでの使用 15
  16. 16. / 22 (一部を抜粋) 16https://github.com/xamarin/XamarinComponents/blob/master/Android/ARCore/build.cake
  17. 17. / 22 使ってみる 17
  18. 18. / 22 ファイルをコピーしてビルド パスが / 区切りで書けるのがうれしい。 +ビルドイベントでは素直にはできない。 18 Task("A") .Does(() => { if (!DirectoryExists ("./dest/")) CreateDirectory ("./dest"); CopyFile("build.cake", "./dest/b2.c"); DotNetCoreBuild("./src/ConsoleApp1/ConsoleApp1.sln"); }); RunTarget("A")
  19. 19. / 22 ここにコピーは書けない ここに書くのはそのまま実行されるコマンドなので、マルチプラットフォームでのファ イルのコピーができない。 19
  20. 20. / 22 Built-In methods 20https://cakebuild.net/dsl/ とりあえず かなり ある
  21. 21. / 22 まとめ 21
  22. 22. / 22 まとめ ・つかえそう ・.NETCore や Xamarin なんかのマルチプラットフォームで便利に使えそう ・ファイル操作なら PowerShell という選択肢もあるかも 22
  23. 23. / 22 ありがとうございました。 23

×