build.cake 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #addin nuget:?package=Cake.Coverlet&version=2.5.4
  2. #tool dotnet:?package=dotnet-reportgenerator-globaltool&version=5.1.13
  3. var testProjectsRelativePaths = new string[]
  4. {
  5. "./Solana.Unity.Gum.Test/Solana.Unity.Gum.Test.csproj",
  6. };
  7. var target = Argument("target", "Pack");
  8. var configuration = Argument("configuration", "Release");
  9. var solutionFolder = "./";
  10. var artifactsDir = MakeAbsolute(Directory("artifacts"));
  11. var packagesDir = artifactsDir.Combine(Directory("packages"));
  12. Task("Clean")
  13. .Does(() => {
  14. CleanDirectory(artifactsDir);
  15. });
  16. Task("Restore")
  17. .Does(() => {
  18. DotNetCoreRestore(solutionFolder);
  19. });
  20. Task("Build")
  21. .IsDependentOn("Clean")
  22. .IsDependentOn("Restore")
  23. .Does(() => {
  24. DotNetCoreBuild(solutionFolder, new DotNetCoreBuildSettings
  25. {
  26. NoRestore = true,
  27. Configuration = configuration
  28. });
  29. });
  30. Task("Test")
  31. .IsDependentOn("Build")
  32. .Does(() => {
  33. var testSettings = new DotNetCoreTestSettings
  34. {
  35. NoRestore = true,
  36. Configuration = configuration,
  37. NoBuild = true,
  38. ArgumentCustomization = args => args.Append($"--logger trx"),
  39. };
  40. DotNetCoreTest(testProjectsRelativePaths[0], testSettings);
  41. });
  42. Task("Publish")
  43. .IsDependentOn("Build")
  44. .Does(() => {
  45. DotNetCorePublish(solutionFolder, new DotNetCorePublishSettings
  46. {
  47. NoRestore = true,
  48. Configuration = configuration,
  49. NoBuild = true,
  50. OutputDirectory = artifactsDir
  51. });
  52. });
  53. Task("Pack")
  54. .IsDependentOn("Publish")
  55. .Does(() =>
  56. {
  57. var settings = new DotNetCorePackSettings
  58. {
  59. Configuration = configuration,
  60. NoBuild = true,
  61. NoRestore = true,
  62. IncludeSymbols = true,
  63. OutputDirectory = packagesDir,
  64. };
  65. GetFiles("./src/*/*.csproj")
  66. .ToList()
  67. .ForEach(f => DotNetCorePack(f.FullPath, settings));
  68. });
  69. RunTarget(target);