/// <summary> /// nuget pack /// </summary> public static ITargetDefinition Pack(ITargetDefinition _, IMsBuild build) => _ .DependsOn(build.Build) .Executes( () => { foreach (var project in build.NuspecDirectory.GlobFiles("*.nuspec")) { NuGetTasks .NuGetPack( settings => settings .SetTargetPath(project) .SetConfiguration(build.Configuration) .SetGitVersionEnvironment(build.GitVersion) .SetVersion(build.GitVersion.NuGetVersionV2) .SetOutputDirectory(build.NuGetPackageDirectory) .SetSymbols(true) ); } } );
/// <summary> /// xunit test /// </summary> public static ITargetDefinition Test(ITargetDefinition _, IMsBuild build) => _ .DependsOn(build.Build) .DependentFor(build.Pack) .Executes( () => { foreach (var project in build.Solution.GetTestProjects()) { DotNetTasks .DotNetTest( settings => settings .SetProjectFile(project) .SetConfiguration(build.Configuration) .SetGitVersionEnvironment(build.GitVersion) .SetDefaultLoggers(build.LogsDirectory / "test.log") .EnableNoRestore() .SetLogger("trx") .SetProperty("VSTestResultsDirectory", build.TestResultsDirectory) ); } } );
/// <summary> /// msbuild /// </summary> public static ITargetDefinition Build(ITargetDefinition _, IMsBuild build) => _ .DependsOn(build.Restore) .Executes( () => { MSBuildTasks .MSBuild( settings => settings .SetSolutionFile(build.Solution) .SetConfiguration(build.Configuration) .SetDefaultLoggers(build.LogsDirectory / "build.log") .SetGitVersionEnvironment(build.GitVersion) .SetAssemblyVersion(build.GitVersion.AssemblySemVer) .SetPackageVersion(build.GitVersion.NuGetVersionV2) ); } );
/// <summary> /// nuget restore /// </summary> public static ITargetDefinition Restore(ITargetDefinition _, IMsBuild build) => _ .DependsOn(build.Clean) .Executes( () => { NuGetTasks .NuGetRestore( settings => settings .SetSolutionDirectory(build.Solution) .EnableNoCache() ); } );
/// <summary> /// package /// </summary> public static ITargetDefinition Package(ITargetDefinition _, IXamarinBuild build) => _ .DependsOn(build.Test) .Executes(() => { });
/// <summary> /// test /// </summary> public static ITargetDefinition Test(ITargetDefinition _, IXamarinBuild build) => _ .DependsOn(build.Build) .OnlyWhenStatic(() => DirectoryExists(build.TestDirectory)) .Executes(() => { DotNetTest(settings => settings .SetProjectFile(build.Solution) .SetDefaultLoggers(build.LogsDirectory / "test.log") .SetGitVersionEnvironment(build.GitVersion) .SetConfiguration(build.Configuration) .EnableNoRestore() .SetLogger($"trx") .SetProperty("CollectCoverage", "true") .SetProperty("DeterministicSourcePaths", "false") // DeterministicSourcePaths being true breaks coverlet! .SetProperty("CoverageDirectory", build.CoverageDirectory) .SetResultsDirectory(build.TestResultsDirectory)); foreach (var coverage in build.TestResultsDirectory.GlobFiles("**/*.cobertura.xml")) { CopyFileToDirectory(coverage, build.CoverageDirectory, FileExistsPolicy.OverwriteIfNewer); } });
/// <summary> /// nuget restore /// </summary> public static ITargetDefinition Restore(ITargetDefinition _, IXamarinBuild build) => _ .DependsOn(build.Clean) .Executes(() => DotNetRestore(settings => settings .SetProjectFile(build.Solution) .SetDisableParallel(true) .SetDefaultLoggers(build.LogsDirectory / "restore.log") .SetGitVersionEnvironment(build.GitVersion)));