1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using System.IO;
- using Nuke.Common;
- using Nuke.Common.Execution;
- using Nuke.Common.IO;
- using Nuke.Common.ProjectModel;
- using Nuke.Common.Tools.DotNet;
- using static Nuke.Common.IO.FileSystemTasks;
- using static Nuke.Common.Tools.DotNet.DotNetTasks;
- [UnsetVisualStudioEnvironmentVariables]
- class Build : NukeBuild
- {
- public static int Main() => Execute<Build>(x => x.Publish);
- [Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")]
- readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release;
- [Solution] readonly Solution Solution;
- AbsolutePath OutputDirectory => RootDirectory / "output";
- AbsolutePath SourceDirectory => RootDirectory / "src";
- Target Clean => _ => _
- .Before(Restore)
- .Executes(() =>
- {
- EnsureCleanDirectory(OutputDirectory);
- });
- Target Restore => _ => _
- .Executes(() =>
- {
- DotNetRestore(s => s
- .SetProjectFile(Solution));
- });
- Target Compile => _ => _
- .DependsOn(Restore)
- .Executes(() =>
- {
- DotNetBuild(s => s
- .SetProjectFile(Solution)
- .SetConfiguration(Configuration)
- .EnableNoRestore());
- });
- Target Test => _ => _
- .DependsOn(Compile)
- .Executes(() =>
- {
- DotNetTest(s => s
- .SetProjectFile(Solution)
- .EnableNoRestore());
- });
- Target Publish => _ => _
- .DependsOn(Test)
- .Executes(() =>{
- DotNetPublish(s => s
- .SetProject(SourceDirectory / "Website/Website.csproj")
- .SetConfiguration(Configuration)
- .SetOutput(OutputDirectory));
- var scssFiles = Directory.GetFiles(OutputDirectory / "wwwroot/css", "*.scss");
- foreach (var file in scssFiles)
- File.Delete(file);
- var cssFiles = Directory.GetFiles(OutputDirectory / "wwwroot/css", "*.css");
- foreach (var file in cssFiles)
- if (new FileInfo(file).Length == 0)
- File.Delete(file);
- });
- }
|