From 2f6e114bae8945d33e82e1000e36135c0e8496c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Fri, 10 Jan 2025 11:08:54 +0100 Subject: [PATCH] fix: mutation comment during update (#705) When the mutation comment is updated, it adds an incorrect string --- Pipeline/Build.CodeAnalysis.cs | 5 +++-- Pipeline/Build.Compile.cs | 13 ++++++------- Pipeline/Build.MutationTests.cs | 10 +++++----- Pipeline/Build.Pack.cs | 7 ++++++- Pipeline/Build.cs | 7 ++++--- Pipeline/Build.csproj | 1 + Pipeline/BuildExtensions.cs | 8 ++++---- 7 files changed, 29 insertions(+), 22 deletions(-) diff --git a/Pipeline/Build.CodeAnalysis.cs b/Pipeline/Build.CodeAnalysis.cs index 701d9408..cbec06c6 100644 --- a/Pipeline/Build.CodeAnalysis.cs +++ b/Pipeline/Build.CodeAnalysis.cs @@ -7,7 +7,7 @@ namespace Build; partial class Build { - [Parameter("The key to push to sonarcloud")] [Secret] readonly string SonarToken; + [Parameter("The key to push to sonarcloud")] [Secret] readonly string? SonarToken; Target CodeAnalysisBegin => _ => _ .Unlisted() @@ -21,7 +21,7 @@ partial class Build .AddVSTestReports(TestResultsDirectory / "*.trx") .AddOpenCoverPaths(TestResultsDirectory / "reports" / "OpenCover.xml") .SetPullRequestOrBranchName(GitHubActions, GitVersion) - .SetVersion(GitVersion.SemVer) + .SetVersion(GitVersion?.SemVer) .SetToken(SonarToken)); }); @@ -36,6 +36,7 @@ partial class Build .SetToken(SonarToken)); }); + // ReSharper disable once UnusedMember.Local Target CodeAnalysis => _ => _ .DependsOn(CodeAnalysisBegin) .DependsOn(CodeAnalysisEnd); diff --git a/Pipeline/Build.Compile.cs b/Pipeline/Build.Compile.cs index 739172a4..7b600bde 100644 --- a/Pipeline/Build.Compile.cs +++ b/Pipeline/Build.Compile.cs @@ -2,7 +2,6 @@ using Nuke.Common.IO; using Nuke.Common.Tools.DotNet; using Nuke.Common.Utilities.Collections; -using Nuke.Components; using Serilog; using System; using System.Linq; @@ -15,15 +14,15 @@ namespace Build; partial class Build { - string SemVer; + string? SemVer; Target CalculateNugetVersion => _ => _ .Unlisted() .Executes(() => { - SemVer = GitVersion.SemVer; + SemVer = GitVersion?.SemVer; - if (GitHubActions?.IsPullRequest == true) + if (GitHubActions.IsPullRequest && GitVersion != null) { string buildNumber = GitHubActions.RunNumber.ToString(); Console.WriteLine( @@ -73,8 +72,8 @@ partial class Build .EnableNoLogo() .EnableNoRestore() .SetVersion(SemVer) - .SetAssemblyVersion(GitVersion.AssemblySemVer) - .SetFileVersion(GitVersion.AssemblySemFileVer) - .SetInformationalVersion(GitVersion.InformationalVersion)); + .SetAssemblyVersion(GitVersion?.AssemblySemVer) + .SetFileVersion(GitVersion?.AssemblySemFileVer) + .SetInformationalVersion(GitVersion?.InformationalVersion)); }); } diff --git a/Pipeline/Build.MutationTests.cs b/Pipeline/Build.MutationTests.cs index 20024368..a0985032 100644 --- a/Pipeline/Build.MutationTests.cs +++ b/Pipeline/Build.MutationTests.cs @@ -117,7 +117,7 @@ await gitHubClient.Issue.Comment.Update("Testably", "Testably.Abstractions", foreach (KeyValuePair project in projects) { - string branchName = GitVersion.BranchName; + string? branchName = GitVersion?.BranchName; if (GitHubActions?.Ref.StartsWith("refs/tags/", StringComparison.OrdinalIgnoreCase) == true) { @@ -141,7 +141,7 @@ await gitHubClient.Issue.Comment.Update("Testably", "Testably.Abstractions", "target-framework": "net8.0", "since": { "target": "main", - "enabled": {{(GitVersion.BranchName != "main").ToString().ToLowerInvariant()}}, + "enabled": {{(GitVersion?.BranchName != "main").ToString().ToLowerInvariant()}}, "ignore-changes-in": [ "**/.github/**/*.*" ] @@ -233,7 +233,7 @@ await gitHubClient.Issue.Comment.Update("Testably", "Testably.Abstractions", foreach (KeyValuePair project in projects) { - string branchName = GitVersion.BranchName; + string? branchName = GitVersion?.BranchName; if (GitHubActions?.Ref.StartsWith("refs/tags/", StringComparison.OrdinalIgnoreCase) == true) { @@ -257,7 +257,7 @@ await gitHubClient.Issue.Comment.Update("Testably", "Testably.Abstractions", "target-framework": "net8.0", "since": { "target": "main", - "enabled": {{(GitVersion.BranchName != "main").ToString().ToLowerInvariant()}}, + "enabled": {{(GitVersion?.BranchName != "main").ToString().ToLowerInvariant()}}, "ignore-changes-in": [ "**/.github/**/*.*" ] @@ -355,7 +355,7 @@ string ReplaceProject(string body, string project, string value) if (startIndex >= 0 && endIndex > startIndex) { string prefix = body.Substring(0, startIndex); - string suffix = body.Substring(endIndex + 1); + string suffix = body.Substring(endIndex + $"".Length); return prefix + value + suffix; } diff --git a/Pipeline/Build.Pack.cs b/Pipeline/Build.Pack.cs index 58655405..2c9a753c 100644 --- a/Pipeline/Build.Pack.cs +++ b/Pipeline/Build.Pack.cs @@ -2,7 +2,6 @@ using Nuke.Common.IO; using Nuke.Common.ProjectModel; using Nuke.Common.Utilities.Collections; -using Nuke.Components; using System.IO; using System.Linq; using System.Text; @@ -20,6 +19,11 @@ partial class Build .Before(Compile) .Executes(() => { + if (GitVersion == null) + { + return; + } + string version = string.Join('.', GitVersion.SemVer.Split('.').Take(3)); if (version.IndexOf('-') != -1) { @@ -60,6 +64,7 @@ partial class Build File.WriteAllText(ArtifactsDirectory / "README.md", sb.ToString()); }); + // ReSharper disable once UnusedMember.Local Target Pack => _ => _ .DependsOn(UpdateReadme) .DependsOn(Compile) diff --git a/Pipeline/Build.cs b/Pipeline/Build.cs index ffd925f5..4372f921 100644 --- a/Pipeline/Build.cs +++ b/Pipeline/Build.cs @@ -17,11 +17,11 @@ partial class Build : NukeBuild [Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")] readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release; - [Parameter("Github Token")] readonly string GithubToken; + [Parameter("Github Token")] readonly string? GithubToken; - [Required] [GitVersion(Framework = "net8.0", NoCache = true, NoFetch = true)] readonly GitVersion GitVersion; + [Required] [GitVersion(Framework = "net8.0", NoCache = true, NoFetch = true)] readonly GitVersion? GitVersion; - [Solution(GenerateProjects = true)] readonly Solution Solution; + [Solution(GenerateProjects = true)] readonly Solution Solution = null!; AbsolutePath ArtifactsDirectory => RootDirectory / "Artifacts"; AbsolutePath TestResultsDirectory => RootDirectory / "TestResults"; @@ -30,5 +30,6 @@ partial class Build : NukeBuild public static int Main() => Execute([ x => x.ApiChecks, x => x.UnitTests, + x => x.MutationTests, ]); } diff --git a/Pipeline/Build.csproj b/Pipeline/Build.csproj index ab852ed2..b19de3fe 100644 --- a/Pipeline/Build.csproj +++ b/Pipeline/Build.csproj @@ -2,6 +2,7 @@ Exe + enable net8.0 CS0649;CS0169;CA1050;CA1822;CA2211;IDE1006 .. diff --git a/Pipeline/BuildExtensions.cs b/Pipeline/BuildExtensions.cs index c43c5d1b..de8862f7 100644 --- a/Pipeline/BuildExtensions.cs +++ b/Pipeline/BuildExtensions.cs @@ -10,8 +10,8 @@ public static class BuildExtensions { public static SonarScannerBeginSettings SetPullRequestOrBranchName( this SonarScannerBeginSettings settings, - GitHubActions gitHubActions, - GitVersion gitVersion) + GitHubActions? gitHubActions, + GitVersion? gitVersion) { if (gitHubActions?.IsPullRequest == true) { @@ -30,7 +30,7 @@ public static SonarScannerBeginSettings SetPullRequestOrBranchName( return settings.SetBranchName(branchName); } - Log.Information("Use branch analysis for '{BranchName}'", gitVersion.BranchName); - return settings.SetBranchName(gitVersion.BranchName); + Log.Information("Use branch analysis for '{BranchName}'", gitVersion?.BranchName); + return settings.SetBranchName(gitVersion?.BranchName); } }