Skip to content

Commit

Permalink
fixed build warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
david-driscoll committed Nov 10, 2019
1 parent 2dbf2b6 commit ec7871c
Show file tree
Hide file tree
Showing 14 changed files with 145 additions and 79 deletions.
8 changes: 4 additions & 4 deletions .build/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ class Solution : DotNetCoreBuild, IDotNetCoreBuild
.DependsOn(Pack)
;

public new Target Restore => _ => _.With(DotNetCoreBuild.Restore, this);
public new Target Restore => _ => _.With(this, DotNetCoreBuild.Restore);

public new Target Build => _ => _.With(DotNetCoreBuild.Build, this);
public new Target Build => _ => _.With(this, DotNetCoreBuild.Build);

public new Target Test => _ => _.With(DotNetCoreBuild.Test, this);
public new Target Test => _ => _.With(this, DotNetCoreBuild.Test);

public new Target Pack => _ => _.With(DotNetCoreBuild.Pack, this);
public new Target Pack => _ => _.With(this, DotNetCoreBuild.Pack);
}
92 changes: 63 additions & 29 deletions src/Nuke.DotNetCore/DotNetCoreBuild.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
using System.IO;
using System.Linq;
using System;
using Nuke.Common.Tooling;

namespace Rocket.Surgery.Nuke.DotNetCore
{
Expand Down Expand Up @@ -65,36 +66,69 @@ public abstract class DotNetCoreBuild : RocketBoosterBuild
/// <summary>
/// dotnet test
/// </summary>
public static ITargetDefinition Test(ITargetDefinition _, IDotNetCoreBuild build) => _
.Description("Executes all the unit tests.")
.After(build.Build)
.DependentFor(build.Pack)
.DependentFor(build.Generate_Code_Coverage_Reports)
.Triggers(build.Generate_Code_Coverage_Reports)
.OnlyWhenStatic(() => DirectoryExists(build.TestDirectory))
.OnlyWhenDynamic(() => build.TestDirectory.GlobFiles("**/*.csproj").Count > 0)
.WhenSkipped(DependencyBehavior.Execute)
.Executes(async () =>
{
DotNetTest(s => s
.SetProjectFile(build.Solution)
.SetDefaultLoggers(build.LogsDirectory / "test.log")
.SetGitVersionEnvironment(build.GitVersion)
.SetConfiguration("Debug")
.EnableNoRestore()
.SetLogger($"trx")
.SetProperty("CollectCoverage", "true")
// DeterministicSourcePaths being true breaks coverlet!
.SetProperty("DeterministicSourcePaths", "false")
.SetProperty("CoverageDirectory", build.CoverageDirectory)
.SetResultsDirectory(build.TestResultsDirectory)
);
public static ITargetDefinition Test(ITargetDefinition _, IDotNetCoreBuild build) => Test(true)(_, build);

foreach (var coverage in build.TestResultsDirectory.GlobFiles("**/*.cobertura.xml"))
{
CopyFileToDirectory(coverage, build.CoverageDirectory, FileExistsPolicy.OverwriteIfNewer);
}
});
/// <summary>
/// dotnet test
/// </summary>
public static Func<ITargetDefinition, IDotNetCoreBuild, ITargetDefinition> Test(bool useDataCollector) =>
(ITargetDefinition _, IDotNetCoreBuild build) => _
.Description("Executes all the unit tests.")
.After(build.Build)
.DependentFor(build.Pack)
.DependentFor(build.Generate_Code_Coverage_Reports)
.Triggers(build.Generate_Code_Coverage_Reports)
.OnlyWhenStatic(() => DirectoryExists(build.TestDirectory))
.OnlyWhenDynamic(() => build.TestDirectory.GlobFiles("**/*.csproj").Count > 0)
.WhenSkipped(DependencyBehavior.Execute)
.Executes(() => EnsureCleanDirectory(build.TestResultsDirectory))
.Executes(async () =>
{
var runsettings = build.TestDirectory / "coverlet.runsettings";
if (!FileExists(runsettings))
{
runsettings = TemporaryDirectory / "default.runsettings";
if (!FileExists(runsettings))
{
using var tempFile = File.Open(runsettings, FileMode.CreateNew);
await typeof(DotNetCoreBuild).Assembly
.GetManifestResourceStream("Rocket.Surgery.Nuke.default.runsettings")!
.CopyToAsync(tempFile)
.ConfigureAwait(false);
}
}
DotNetTest(s => s
.SetProjectFile(build.Solution)
.SetDefaultLoggers(build.LogsDirectory / "test.log")
.SetGitVersionEnvironment(build.GitVersion)
.SetConfiguration("Debug")
.EnableNoRestore()
.SetLogger($"trx")
// DeterministicSourcePaths being true breaks coverlet!
.SetProperty("DeterministicSourcePaths", "false")
.SetResultsDirectory(build.TestResultsDirectory)
.When(useDataCollector, x => x
.SetProperty("CollectCoverage", "true")
.SetProperty("CoverageDirectory", build.CoverageDirectory)
)
.When(!useDataCollector, x => x
.SetProperty("CollectCoverage", "false")
.SetDataCollector("XPlat Code Coverage")
.SetSettingsFile(runsettings)
)
);
foreach (var coverage in build.TestResultsDirectory.GlobFiles("**/*.cobertura.xml"))
{
CopyDirectoryRecursively(
Path.GetDirectoryName(coverage),
build.CoverageDirectory,
DirectoryExistsPolicy.Merge,
FileExistsPolicy.OverwriteIfNewer
);
}
});

/// <summary>
/// dotnet pack
Expand Down
1 change: 1 addition & 0 deletions src/Nuke.DotNetCore/Rocket.Surgery.Nuke.DotNetCore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

<ItemGroup>
<ProjectReference Include="..\Nuke\Rocket.Surgery.Nuke.csproj" PrivateAssets="contentfiles;analyzers" />
<EmbeddedResource Include="default.runsettings" />
</ItemGroup>

</Project>
14 changes: 14 additions & 0 deletions src/Nuke.DotNetCore/default.runsettings
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="XPlat code coverage">
<Configuration>
<Format>json,lcov,cobertura,opencover</Format>
<Exclude>[Bogus*]*,[Autofac*]*,[FakeItEasy*]*,[Moq*]*,[xunit*]*,[Microsoft.*]*,[XunitXml*]*,[coverlet.*]*,[System.*]*,[*]JetBrains.Annotations*</Exclude>
<!-- <Include></Include> -->
<ExcludeByAttribute>Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute</ExcludeByAttribute>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
1 change: 0 additions & 1 deletion src/Nuke.Xamarin/XamarinConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ namespace Rocket.Surgery
/// <summary>
/// Represents xamarin build configuration.
/// </summary>
[PublicAPI]
[TypeConverter(typeof(TypeConverter<Configuration>))]
public class XamarinConfiguration : Enumeration
{
Expand Down
29 changes: 20 additions & 9 deletions src/Nuke/LoggingExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,37 @@

namespace Rocket.Surgery.Nuke
{
/// <inheritdoc />
public static class LoggingExtensions
{
/// <inheritdoc />
public static void Log(string log) => Logger.Normal(log);

public static void Debug(string info) { Logger.Trace(info); }
/// <inheritdoc />
public static void Debug(string info) => Logger.Trace(info);

public static void Debug(string info, params object[] args) { Logger.Trace(info, args); }
/// <inheritdoc />
public static void Debug(string info, params object[] args) => Logger.Trace(info, args);

public static void Information(string info) { Logger.Info(info); }
/// <inheritdoc />
public static void Information(string info) => Logger.Info(info);

public static void Information(string info, params object[] args) { Logger.Info(info, args); }
/// <inheritdoc />
public static void Information(string info, params object[] args) => Logger.Info(info, args);

public static void Warning(string info) { Logger.Warn(info); }
/// <inheritdoc />
public static void Warning(string info) => Logger.Warn(info);

public static void Warning(string info, params object[] args) { Logger.Warn(info, args); }
/// <inheritdoc />
public static void Warning(string info, params object[] args) => Logger.Warn(info, args);

public static void Error(string info) { Logger.Error(info); }
/// <inheritdoc />
public static void Error(string info) => Logger.Error(info);

public static void Error(string info, params object[] args) { Logger.Error(info, args); }
/// <inheritdoc />
public static void Error(string info, params object[] args) => Logger.Error(info, args);

public static string EnvironmentVariable(string key) => Environment.GetEnvironmentVariable(key);
/// <inheritdoc />
public static string? EnvironmentVariable(string key) => Environment.GetEnvironmentVariable(key);
}
}
1 change: 1 addition & 0 deletions src/Nuke/NuGetVerbosityMappingAttribute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ namespace Rocket.Surgery.Nuke
/// <summary>
/// Mapping for nuget Verbosity
/// </summary>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public class NuGetVerbosityMappingAttribute : VerbosityMappingAttribute
{
/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion src/Nuke/PackageIconAttribute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public sealed class PackageIconAttribute : DownloadFileAttribute
/// </summary>
/// <param name="url">The Url to download</param>
/// <param name="filePath">The file path to download to, defaults to TemporaryDirectory / packageicon.[ext]</param>
public PackageIconAttribute(string url, string filePath = null)
public PackageIconAttribute(string url, string? filePath = null)
: base(url, filePath == null ? ("packageicon" + System.IO.Path.GetExtension(url)) : (AbsolutePath)filePath)
{
Type = "Package Icon";
Expand Down
2 changes: 1 addition & 1 deletion src/Nuke/Readme/IMarkdownReferences.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ public interface IMarkdownReferences
/// <param name="value"></param>
/// <param name="altText"></param>
/// <returns></returns>
string AddReference(string name, string value, string altText = null);
string AddReference(string name, string value, string? altText = null);
}
}
6 changes: 3 additions & 3 deletions src/Nuke/Readme/NugetPackagesSection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ public string GetResult(IDictionary<string, object> config, IMarkdownReferences

var dcfg = config;
var myget = dcfg["myget"] as IDictionary<object, object>;
var mygetUrlReference = references.AddReference($"myget-{hash}", MyGetUrl(myget["account"].ToString(), packageName));
var mygetVersionBadge = references.AddReference($"myget-version-{hash}-badge", MyGetPrereleaseVersionBadge(myget["account"].ToString(), packageName), "MyGet Pre-Release Version");
var mygetDownloadsBadge = references.AddReference($"myget-downloads-{hash}-badge", MyGetDownloadsBadge(myget["account"].ToString(), packageName), "MyGet Downloads");
var mygetUrlReference = references.AddReference($"myget-{hash}", MyGetUrl(myget!["account"].ToString()!, packageName));
var mygetVersionBadge = references.AddReference($"myget-version-{hash}-badge", MyGetPrereleaseVersionBadge(myget["account"].ToString()!, packageName), "MyGet Pre-Release Version");
var mygetDownloadsBadge = references.AddReference($"myget-downloads-{hash}-badge", MyGetDownloadsBadge(myget["account"].ToString()!, packageName), "MyGet Downloads");
return $"| {packageName} | [!{nugetVersionBadge}!{nugetDownloadsBadge}]{nugetUrlReference} | [!{mygetVersionBadge}!{mygetDownloadsBadge}]{mygetUrlReference} |";
}

Expand Down
2 changes: 1 addition & 1 deletion src/Nuke/Readme/References.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class References : IMarkdownReferences, IReadmeSection
public string ConfigKey { get; } = string.Empty;

/// <inheritdoc />
public string AddReference(string name, string value, string altText = null)
public string AddReference(string name, string value, string? altText = null)
{
var key = $"[{name}]";
if (string.IsNullOrEmpty(altText))
Expand Down
8 changes: 4 additions & 4 deletions src/Nuke/RocketBoosterBuild.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,22 +49,22 @@ public abstract class RocketBoosterBuild : NukeBuild, IRocketBoosterBuild
/// <summary>
/// The solution currently being build
/// </summary>
[Solution] public Solution Solution { get; }
[Solution] public Solution Solution { get; } = null!;

/// <summary>
/// The Git Repository currently being built
/// </summary>
[GitRepository] public GitRepository GitRepository { get; }
[GitRepository] public GitRepository GitRepository { get; } = null!;

/// <summary>
/// The Git Version information either computed by GitVersion itself, or as defined by environment variables of the format `GITVERSION_*`
/// </summary>
[ComputedGitVersion] public GitVersion GitVersion { get; }
[ComputedGitVersion] public GitVersion GitVersion { get; } = null!;

/// <summary>
/// The readme updater that ensures that all the badges are in sync.
/// </summary>
[Readme] public ReadmeUpdater Readme { get; }
[Readme] public ReadmeUpdater Readme { get; } = null!;

/// <summary>
/// The directory where samples will be placed
Expand Down
18 changes: 10 additions & 8 deletions src/Nuke/SyncPackages/PackageSync.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

namespace Rocket.Surgery.Nuke.SyncPackages
{
public static class PackageSync
internal static class PackageSync
{
public static async Task AddMissingPackages(
AbsolutePath solutionPath,
Expand Down Expand Up @@ -84,10 +84,10 @@ CancellationToken cancellationToken
OrderPackageReferences(itemGroups.ToArray());
RemoveDuplicatePackageReferences(document);

await UpdateXDocument(packagesProps, document, cancellationToken).ConfigureAwait(false);
UpdateXDocument(packagesProps, document);
}

public static async Task RemoveExtraPackages(
public static Task RemoveExtraPackages(
AbsolutePath solutionPath,
AbsolutePath packagesProps,
CancellationToken cancellationToken
Expand Down Expand Up @@ -129,10 +129,11 @@ CancellationToken cancellationToken
}
}

await UpdateXDocument(packagesProps, document, cancellationToken).ConfigureAwait(false);
UpdateXDocument(packagesProps, document);
return Task.CompletedTask;
}

public static async Task MoveVersions(
public static Task MoveVersions(
AbsolutePath solutionPath,
AbsolutePath packagesProps,
CancellationToken cancellationToken)
Expand Down Expand Up @@ -173,13 +174,14 @@ CancellationToken cancellationToken
item.SetAttributeValue("Version", null);
}

await UpdateXDocument(path, document, cancellationToken).ConfigureAwait(false);
UpdateXDocument(path, document);
}

OrderPackageReferences(itemGroups.ToArray());
RemoveDuplicatePackageReferences(packagesDocument);

await UpdateXDocument(packagesProps, packagesDocument, cancellationToken).ConfigureAwait(false);
UpdateXDocument(packagesProps, packagesDocument);
return Task.CompletedTask;
}

private static IEnumerable<ProjectAnalyzer> GetProjects(AbsolutePath solutionPath)
Expand All @@ -191,7 +193,7 @@ private static IEnumerable<ProjectAnalyzer> GetProjects(AbsolutePath solutionPat
}
}

private static async Task UpdateXDocument(string path, XDocument document, CancellationToken cancellationToken)
private static void UpdateXDocument(string path, XDocument document)
{
using var fileWrite = File.Open(path, FileMode.Truncate);
using var writer = XmlWriter.Create(fileWrite, new XmlWriterSettings { OmitXmlDeclaration = true, Async = true, Indent = true });
Expand Down
40 changes: 22 additions & 18 deletions src/Rocket.Surgery.Nuke.AzureDevOps/AzureDevOpsTasks.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@
using GlobExpressions;
using Nuke.Common;
using Nuke.Common.Tools.GitVersion;
using static Rocket.Surgery.Nuke.LoggingExtensions;
using static Nuke.Common.Logger;
using static Nuke.Common.EnvironmentInfo;

namespace Rocket.Surgery.Nuke.AzurePipelines
{
/// <summary>
/// Base pipeline build task
/// </summary>
public class AzurePipelinesTasks
{
/// <summary>
Expand All @@ -22,25 +26,25 @@ public class AzurePipelinesTasks
.OnlyWhenStatic(IsRunningOnAzurePipelines)
.Executes(() =>
{
Information("AGENT_ID: {0}", EnvironmentVariable("AGENT_ID"));
Information("AGENT_NAME: {0}", EnvironmentVariable("AGENT_NAME"));
Information("AGENT_VERSION: {0}", EnvironmentVariable("AGENT_VERSION"));
Information("AGENT_JOBNAME: {0}", EnvironmentVariable("AGENT_JOBNAME"));
Information("AGENT_JOBSTATUS: {0}", EnvironmentVariable("AGENT_JOBSTATUS"));
Information("AGENT_MACHINE_NAME: {0}", EnvironmentVariable("AGENT_MACHINE_NAME"));
Information("\n");
Info("AGENT_ID: {0}", GetVariable<string>("AGENT_ID"));
Info("AGENT_NAME: {0}", GetVariable<string>("AGENT_NAME"));
Info("AGENT_VERSION: {0}", GetVariable<string>("AGENT_VERSION"));
Info("AGENT_JOBNAME: {0}", GetVariable<string>("AGENT_JOBNAME"));
Info("AGENT_JOBSTATUS: {0}", GetVariable<string>("AGENT_JOBSTATUS"));
Info("AGENT_MACHINE_NAME: {0}", GetVariable<string>("AGENT_MACHINE_NAME"));
Info("\n");
Information("BUILD_BUILDID: {0}", EnvironmentVariable("BUILD_BUILDID"));
Information("BUILD_BUILDNUMBER: {0}", EnvironmentVariable("BUILD_BUILDNUMBER"));
Information("BUILD_DEFINITIONNAME: {0}", EnvironmentVariable("BUILD_DEFINITIONNAME"));
Information("BUILD_DEFINITIONVERSION: {0}", EnvironmentVariable("BUILD_DEFINITIONVERSION"));
Information("BUILD_QUEUEDBY: {0}", EnvironmentVariable("BUILD_QUEUEDBY"));
Information("\n");
Info("BUILD_BUILDID: {0}", GetVariable<string>("BUILD_BUILDID"));
Info("BUILD_BUILDNUMBER: {0}", GetVariable<string>("BUILD_BUILDNUMBER"));
Info("BUILD_DEFINITIONNAME: {0}", GetVariable<string>("BUILD_DEFINITIONNAME"));
Info("BUILD_DEFINITIONVERSION: {0}", GetVariable<string>("BUILD_DEFINITIONVERSION"));
Info("BUILD_QUEUEDBY: {0}", GetVariable<string>("BUILD_QUEUEDBY"));
Info("\n");
Information("BUILD_SOURCEBRANCHNAME: {0}", EnvironmentVariable("BUILD_SOURCEBRANCHNAME"));
Information("BUILD_SOURCEVERSION: {0}", EnvironmentVariable("BUILD_SOURCEVERSION"));
Information("BUILD_REPOSITORY_NAME: {0}", EnvironmentVariable("BUILD_REPOSITORY_NAME"));
Information("BUILD_REPOSITORY_PROVIDER: {0}", EnvironmentVariable("BUILD_REPOSITORY_PROVIDER"));
Info("BUILD_SOURCEBRANCHNAME: {0}", GetVariable<string>("BUILD_SOURCEBRANCHNAME"));
Info("BUILD_SOURCEVERSION: {0}", GetVariable<string>("BUILD_SOURCEVERSION"));
Info("BUILD_REPOSITORY_NAME: {0}", GetVariable<string>("BUILD_REPOSITORY_NAME"));
Info("BUILD_REPOSITORY_PROVIDER: {0}", GetVariable<string>("BUILD_REPOSITORY_PROVIDER"));
});

Target UploadAzurePipelinesArtifacts => _ => _
Expand Down

0 comments on commit ec7871c

Please sign in to comment.