osu/build.cake

72 lines
2.2 KiB
Plaintext
Raw Normal View History

2018-09-11 19:49:10 +00:00
#addin "nuget:?package=CodeFileSanity&version=0.0.21"
#addin "nuget:?package=JetBrains.ReSharper.CommandLineTools&version=2018.2.2"
#tool "nuget:?package=NVika.MSBuild&version=1.0.1"
2018-07-29 18:49:26 +00:00
2018-07-23 19:28:56 +00:00
///////////////////////////////////////////////////////////////////////////////
// ARGUMENTS
///////////////////////////////////////////////////////////////////////////////
2018-07-26 01:40:28 +00:00
var target = Argument("target", "Build");
var configuration = Argument("configuration", "Release");
2018-07-23 19:28:56 +00:00
var osuSolution = new FilePath("./osu.sln");
2018-07-23 19:28:56 +00:00
///////////////////////////////////////////////////////////////////////////////
// TASKS
///////////////////////////////////////////////////////////////////////////////
2018-09-16 14:57:53 +00:00
Task("Restore")
2018-10-29 19:41:22 +00:00
.Does(() => {
DotNetCoreRestore(osuSolution.FullPath);
});
2018-09-16 14:57:53 +00:00
2018-07-23 19:28:56 +00:00
Task("Compile")
2018-10-29 19:41:22 +00:00
.IsDependentOn("Restore")
.Does(() => {
DotNetCoreBuild(osuSolution.FullPath, new DotNetCoreBuildSettings {
Configuration = configuration,
NoRestore = true,
});
2018-07-23 19:28:56 +00:00
});
2018-07-26 01:40:28 +00:00
Task("Test")
2018-10-29 19:41:22 +00:00
.IsDependentOn("Compile")
.Does(() => {
var testAssemblies = GetFiles("**/*.Tests/bin/**/*.Tests.dll");
2018-10-29 19:41:22 +00:00
DotNetCoreVSTest(testAssemblies, new DotNetCoreVSTestSettings {
Logger = AppVeyor.IsRunningOnAppVeyor ? "Appveyor" : $"trx",
Parallel = true,
ToolTimeout = TimeSpan.FromMinutes(10),
});
2018-07-23 19:28:56 +00:00
});
// windows only because both inspectcore and nvika depend on net45
2018-07-29 18:49:26 +00:00
Task("InspectCode")
2018-10-29 19:41:22 +00:00
.WithCriteria(IsRunningOnWindows())
.IsDependentOn("Compile")
.Does(() => {
var nVikaToolPath = GetFiles("./tools/NVika.MSBuild.*/tools/NVika.exe").First();
2018-10-29 19:41:22 +00:00
InspectCode(osuSolution, new InspectCodeSettings {
CachesHome = "inspectcode",
OutputFile = "inspectcodereport.xml",
});
2018-10-29 19:41:22 +00:00
StartProcess(nVikaToolPath, @"parsereport ""inspectcodereport.xml"" --treatwarningsaserrors");
});
Task("CodeFileSanity")
2018-10-29 19:41:22 +00:00
.Does(() => {
ValidateCodeSanity(new ValidateCodeSanitySettings {
RootDirectory = ".",
IsAppveyorBuild = AppVeyor.IsRunningOnAppVeyor
});
2018-08-03 22:01:17 +00:00
});
2018-07-29 18:49:26 +00:00
2018-07-26 01:40:28 +00:00
Task("Build")
2018-10-29 19:41:22 +00:00
.IsDependentOn("CodeFileSanity")
.IsDependentOn("InspectCode")
.IsDependentOn("Test");
2018-07-23 19:28:56 +00:00
RunTarget(target);