diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d88bde4..27bc8dc 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,84 +1,88 @@ # ASP.NET Core + # Build and test ASP.NET Core projects targeting .NET Core. # Add steps that run tests, create a NuGet package, deploy, and more: # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core jobs: -- job: OSX - pool: - vmImage: 'xcode9-macos10.13' - steps: - - task: Bash@3 - inputs: - targetType: 'filePath' - filePath: 'build.sh' - arguments: '-configuration $(buildConfiguration) -target CiNonWin -framework netcoreapp2.1' - failOnStderr: true - displayName: 'Build' - - task: PublishTestResults@2 - inputs: - testResultsFormat: 'VSTest' - testResultsFiles: '*.trx' - searchFolder: '$(Build.SourcesDirectory)/artifacts/tests' - displayName: 'Publish Test results' - - task: PublishCodeCoverageResults@1 - inputs: - codeCoverageTool: "cobertura" - summaryFileLocation: "$(Build.SourcesDirectory)/artifacts/coverage/*.xml" - failIfCoverageEmpty: true - displayName: 'Publish Code Coverage' + - job: OSX + pool: + vmImage: 'macOS-latest' + steps: + - task: Bash@3 + continueOnError: true + inputs: + targetType: 'filePath' + filePath: 'build.sh' + arguments: '-configuration $(buildConfiguration) -target CiNonWin -framework netcoreapp2.1' + failOnStderr: true + displayName: 'Build' + - task: PublishTestResults@2 + inputs: + testResultsFormat: 'VSTest' + testResultsFiles: '*.trx' + searchFolder: '$(Build.SourcesDirectory)/artifacts/tests' + displayName: 'Publish Test results' + - task: PublishCodeCoverageResults@1 + inputs: + codeCoverageTool: "cobertura" + summaryFileLocation: "$(Build.SourcesDirectory)/artifacts/coverage/*.xml" + failIfCoverageEmpty: true + displayName: 'Publish Code Coverage' -- job: Ubuntu - pool: - vmImage: 'ubuntu-16.04' - steps: - - task: Bash@3 - inputs: - targetType: 'filePath' - filePath: 'build.sh' - arguments: '-configuration $(buildConfiguration) -target CiNonWin -framework netcoreapp2.1' - failOnStderr: true - displayName: 'Build' - - task: PublishTestResults@2 - inputs: - testResultsFormat: 'VSTest' - testResultsFiles: '*.trx' - searchFolder: '$(Build.SourcesDirectory)/artifacts/tests' - displayName: 'Publish Test results' + - job: Ubuntu + pool: + vmImage: 'ubuntu-latest' + steps: + - task: Bash@3 + continueOnError: true + inputs: + targetType: 'filePath' + filePath: 'build.sh' + arguments: '-configuration $(buildConfiguration) -target CiNonWin -framework netcoreapp2.1' + failOnStderr: true + displayName: 'Build' + - task: PublishTestResults@2 + inputs: + testResultsFormat: 'VSTest' + testResultsFiles: '*.trx' + searchFolder: '$(Build.SourcesDirectory)/artifacts/tests' + displayName: 'Publish Test results' -- job: Windows - pool: - vmImage: 'vs2017-win2016' - steps: - - task: PowerShell@2 - inputs: - targetType: 'filePath' - filePath: 'build.ps1' - arguments: '-configuration $(buildConfiguration) -target Ci' - failOnStderr: true - displayName: 'Build' - - task: PublishTestResults@2 - inputs: - testResultsFormat: 'VSTest' - testResultsFiles: '*.trx' - searchFolder: '$(Build.SourcesDirectory)/artifacts/tests' - displayName: 'Publish Test results' - - task: PublishCodeCoverageResults@1 - inputs: - codeCoverageTool: "cobertura" - summaryFileLocation: "$(Build.SourcesDirectory)/artifacts/coverage/*.xml" - failIfCoverageEmpty: true - displayName: 'Publish Code Coverage' - - task: PublishBuildArtifacts@1 - inputs: - pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget' - artifactName: 'Nuget' - displayName: 'Publish Artifacts' + - job: Windows + pool: + vmImage: 'windows-latest' + steps: + - task: PowerShell@2 + continueOnError: true + inputs: + targetType: 'filePath' + filePath: 'build.ps1' + arguments: '-configuration $(buildConfiguration) -target Ci' + failOnStderr: true + displayName: 'Build' + - task: PublishTestResults@2 + inputs: + testResultsFormat: 'VSTest' + testResultsFiles: '*.trx' + searchFolder: '$(Build.SourcesDirectory)/artifacts/tests' + displayName: 'Publish Test results' + - task: PublishCodeCoverageResults@1 + inputs: + codeCoverageTool: "cobertura" + summaryFileLocation: "$(Build.SourcesDirectory)/artifacts/coverage/*.xml" + failIfCoverageEmpty: true + displayName: 'Publish Code Coverage' + - task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget' + artifactName: 'Nuget' + displayName: 'Publish Artifacts' trigger: -- master -- develop -- release/* + - master + - develop + - release/* variables: buildConfiguration: 'Release' diff --git a/build/Build.cs b/build/Build.cs index e23858b..1181c30 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -1,9 +1,11 @@ using Nuke.Common; using Nuke.Common.Git; +using Nuke.Common.IO; using Nuke.Common.ProjectModel; using Nuke.Common.Tooling; using Nuke.Common.Tools.DotNet; using Nuke.Common.Tools.GitVersion; +using Nuke.Common.Utilities.Collections; using static Nuke.Common.IO.FileSystemTasks; using static Nuke.Common.IO.PathConstruction; using static Nuke.Common.Tools.DotNet.DotNetTasks; @@ -15,7 +17,7 @@ class Build : NukeBuild [Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")] readonly string Configuration = IsLocalBuild ? "Debug" : "Release"; - [Parameter("Explicit framework to build")] readonly string Framework = null; + [Parameter("Explicit framework to build")] readonly string Framework = ""; [Parameter("Collect code coverage. Default is 'true'")] readonly bool? Cover = true; @@ -23,7 +25,7 @@ class Build : NukeBuild [Solution("src/NodaTime.Serialization.Utf8Json/NodaTime.Serialization.Utf8Json.sln")] readonly Solution Solution; [GitRepository] readonly GitRepository GitRepository; - [GitVersion] readonly GitVersion GitVersion; + [GitVersion(Framework = "netcoreapp3.1")] readonly GitVersion GitVersion; AbsolutePath SourceDirectory => RootDirectory / "src"; AbsolutePath ArtifactsDirectory => RootDirectory / "artifacts"; @@ -31,7 +33,7 @@ class Build : NukeBuild Target Clean => _ => _ .Executes(() => { - DeleteDirectories(GlobDirectories(SourceDirectory, "**/bin", "**/obj")); + GlobDirectories(SourceDirectory, "**/bin", "**/obj").ForEach(DeleteDirectory); EnsureCleanDirectory(ArtifactsDirectory); }); @@ -50,8 +52,8 @@ class Build : NukeBuild DotNetBuild(s => s .SetProjectFile(Solution) .SetConfiguration(Configuration) - .SetAssemblyVersion(GitVersion.GetNormalizedAssemblyVersion()) - .SetFileVersion(GitVersion.GetNormalizedFileVersion()) + .SetAssemblyVersion($"{GitVersion.Major}.{GitVersion.Minor}.0") + .SetFileVersion(GitVersion.MajorMinorPatch) .SetInformationalVersion(GitVersion.InformationalVersion) .SetFramework(Framework) .EnableNoRestore() @@ -69,9 +71,9 @@ class Build : NukeBuild .EnableNoBuild() .EnableNoRestore() .SetLogger("trx") - .SetLogOutput(true) + .EnableProcessLogOutput() .SetFramework(Framework) - .SetArgumentConfigurator(arguments => arguments.Add("/p:CollectCoverage={0}", Cover) + .SetProcessArgumentConfigurator(arguments => arguments.Add("/p:CollectCoverage={0}", Cover) .Add("/p:CoverletOutput={0}/", ArtifactsDirectory / "coverage") .Add("/p:Threshold={0}", Threshold) .Add("/p:UseSourceLink={0}", "true") diff --git a/build/_build.csproj b/build/_build.csproj index 53e9558..1346fec 100644 --- a/build/_build.csproj +++ b/build/_build.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp2.1 + netcoreapp3.1 false False @@ -10,8 +10,8 @@ - - + + diff --git a/src/NodaTime.Serialization.Utf8Json/.idea/.idea.NodaTime.Serialization.Utf8Json/.idea/projectSettingsUpdater.xml b/src/NodaTime.Serialization.Utf8Json/.idea/.idea.NodaTime.Serialization.Utf8Json/.idea/projectSettingsUpdater.xml new file mode 100644 index 0000000..4bb9f4d --- /dev/null +++ b/src/NodaTime.Serialization.Utf8Json/.idea/.idea.NodaTime.Serialization.Utf8Json/.idea/projectSettingsUpdater.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/src/NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json.Tests/DS.NodaTime.Serialization.Utf8Json.Tests.csproj b/src/NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json.Tests/DS.NodaTime.Serialization.Utf8Json.Tests.csproj index 58a3b08..c2fdc79 100644 --- a/src/NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json.Tests/DS.NodaTime.Serialization.Utf8Json.Tests.csproj +++ b/src/NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json.Tests/DS.NodaTime.Serialization.Utf8Json.Tests.csproj @@ -7,8 +7,11 @@ - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/src/NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json.csproj b/src/NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json.csproj index 45a563b..223e65b 100644 --- a/src/NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json.csproj +++ b/src/NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json/DS.NodaTime.Serialization.Utf8Json.csproj @@ -16,7 +16,7 @@ - +