From 726319d06612619afd15e1a9efb7d15181c282a8 Mon Sep 17 00:00:00 2001 From: Lukas Gasselsberger Date: Wed, 11 Jan 2023 17:04:32 +0100 Subject: [PATCH] Move coveralls step to NUKE --- .github/workflows/build.yml | 7 +------ .nuke/build.schema.json | 5 +++++ Build/Build.cs | 38 ++++++++++++++++++++++++++++--------- Build/_build.csproj | 1 + 4 files changed, 36 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b7305a9b53..8c3c0683ef 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,12 +28,7 @@ jobs: run: ./build.ps1 env: ApiKey: ${{ secrets.NUGETAPIKEY }} - - - name: coveralls - uses: coverallsapp/github-action@1.1.3 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - path-to-lcov: TestResults/reports/lcov.info + COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload artifacts uses: actions/upload-artifact@v3 diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json index a25782bb66..2f616877fc 100644 --- a/.nuke/build.schema.json +++ b/.nuke/build.schema.json @@ -14,6 +14,9 @@ "type": "boolean", "description": "Indicates to continue a previously failed build attempt" }, + "GithubToken": { + "type": "string" + }, "Help": { "type": "boolean", "description": "Shows the help text for this build assembly" @@ -73,6 +76,7 @@ "Clean", "CodeCoverage", "Compile", + "Coveralls", "Pack", "Push", "Restore", @@ -97,6 +101,7 @@ "Clean", "CodeCoverage", "Compile", + "Coveralls", "Pack", "Push", "Restore", diff --git a/Build/Build.cs b/Build/Build.cs index c1ba36faa3..e9738e4b8b 100644 --- a/Build/Build.cs +++ b/Build/Build.cs @@ -9,12 +9,14 @@ using Nuke.Common.IO; using Nuke.Common.ProjectModel; using Nuke.Common.Tooling; +using Nuke.Common.Tools.CoverallsNet; using Nuke.Common.Tools.DotNet; using Nuke.Common.Tools.GitVersion; using Nuke.Common.Tools.ReportGenerator; using Nuke.Common.Tools.Xunit; using static Nuke.Common.IO.FileSystemTasks; using static Nuke.Common.IO.PathConstruction; +using static Nuke.Common.Tools.CoverallsNet.CoverallsNetTasks; using static Nuke.Common.Tools.DotNet.DotNetTasks; using static Nuke.Common.Tools.ReportGenerator.ReportGeneratorTasks; using static Nuke.Common.Tools.Xunit.XunitTasks; @@ -76,6 +78,9 @@ class Build : NukeBuild .OnlyWhenDynamic(() => RunAllTargets || HasSourceChanges) .Executes(() => { + Information(BranchSpec); + Information(BuildNumber); + Information(PullRequestBase); EnsureCleanDirectory(ArtifactsDirectory); EnsureCleanDirectory(TestResultsDirectory); }); @@ -184,8 +189,7 @@ class Build : NukeBuild }); Target CodeCoverage => _ => _ - .DependsOn(TestFrameworks) - .DependsOn(UnitTests) + .DependsOn(TestFrameworks, UnitTests) .OnlyWhenDynamic(() => RunAllTargets || HasSourceChanges) .Executes(() => { @@ -193,7 +197,10 @@ class Build : NukeBuild .SetProcessToolPath(ToolPathResolver.GetPackageExecutable("ReportGenerator", "ReportGenerator.dll", framework: "net6.0")) .SetTargetDirectory(TestResultsDirectory / "reports") .AddReports(TestResultsDirectory / "**/coverage.cobertura.xml") - .AddReportTypes("HtmlInline_AzurePipelines_Dark", "lcov") + .AddReportTypes( + ReportTypes.Cobertura, + ReportTypes.lcov, + ReportTypes.HtmlInline_AzurePipelines_Dark) .AddFileFilters("-*.g.cs") .SetAssemblyFilters("+FluentAssertions")); @@ -201,6 +208,16 @@ class Build : NukeBuild Information($"Code coverage report: \x1b]8;;file://{link.Replace('\\', '/')}\x1b\\{link}\x1b]8;;\x1b\\"); }); + Target Coveralls => _ => _ + .DependsOn(CodeCoverage) + .OnlyWhenDynamic(() => !IsLocalBuild && (RunAllTargets || HasSourceChanges)) + .Executes(() => + { + CoverallsNet(s => s + .SetInput(TestResultsDirectory / "reports" / "Cobertura.xml") + .EnableDynamicCodeCoverage()); + }); + Target TestFrameworks => _ => _ .DependsOn(Compile) .OnlyWhenDynamic(() => RunAllTargets || HasSourceChanges) @@ -238,12 +255,15 @@ class Build : NukeBuild }); Target Pack => _ => _ - .DependsOn(ApiChecks) - .DependsOn(TestFrameworks) - .DependsOn(UnitTests) - .DependsOn(CodeCoverage) - .DependsOn(CalculateNugetVersion) + .DependsOn( + ApiChecks, + TestFrameworks, + UnitTests, + CodeCoverage, + Coveralls, + CalculateNugetVersion) .OnlyWhenDynamic(() => RunAllTargets || HasSourceChanges) + .Produces(ArtifactsDirectory / "*.nupkg") .Executes(() => { DotNetPack(s => s @@ -286,7 +306,7 @@ class Build : NukeBuild }); string YarnCli => $"{ToolPathResolver.GetPackageExecutable("Yarn.MSBuild", "yarn.js", "1.22.19")} --silent"; - + bool HasDocumentationChanges => Changes.Any(x => x.StartsWith("docs", StringComparison.InvariantCultureIgnoreCase)); diff --git a/Build/_build.csproj b/Build/_build.csproj index e60e653e3a..b44516e32a 100644 --- a/Build/_build.csproj +++ b/Build/_build.csproj @@ -17,6 +17,7 @@ OS_MAC +