From 94af8126cf520805dd7e213b92cdecd9d8728d1f Mon Sep 17 00:00:00 2001 From: Satu Bailey <24945574+satbai@users.noreply.github.com> Date: Mon, 7 Mar 2022 21:30:19 +0200 Subject: [PATCH] Update .NET Core version to 3.1 and add .NET 6 (#301) --- Build.props | 2 +- CONTRIBUTING.md | 2 +- .../CredentialProvider.Microsoft.Tests.csproj | 2 +- .../CredentialProvider.Microsoft.csproj | 2 +- .../CredentialProvider.Microsoft.nuspec | 3 +- build/build.yml | 89 ++++++++++++++----- 6 files changed, 75 insertions(+), 25 deletions(-) diff --git a/Build.props b/Build.props index 7176e202..a450194f 100644 --- a/Build.props +++ b/Build.props @@ -1,6 +1,6 @@ - 0.1.28 + 1.0.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3940d1d9..f8e3e4d9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,7 +11,7 @@ In this and subsequent examples, configuration can be either `debug` or `release ### Publishing ```shell -dotnet publish CredentialProvider.Microsoft --configuration Release --framework netcoreapp2.1 +dotnet publish CredentialProvider.Microsoft --configuration Release --framework net6.0 ``` ### Packing diff --git a/CredentialProvider.Microsoft.Tests/CredentialProvider.Microsoft.Tests.csproj b/CredentialProvider.Microsoft.Tests/CredentialProvider.Microsoft.Tests.csproj index 65c8a0bb..3969ad7f 100644 --- a/CredentialProvider.Microsoft.Tests/CredentialProvider.Microsoft.Tests.csproj +++ b/CredentialProvider.Microsoft.Tests/CredentialProvider.Microsoft.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.1;net461 + netcoreapp3.1;net6.0;net461 false diff --git a/CredentialProvider.Microsoft/CredentialProvider.Microsoft.csproj b/CredentialProvider.Microsoft/CredentialProvider.Microsoft.csproj index 0bb32953..4b423380 100644 --- a/CredentialProvider.Microsoft/CredentialProvider.Microsoft.csproj +++ b/CredentialProvider.Microsoft/CredentialProvider.Microsoft.csproj @@ -3,7 +3,7 @@ Exe NuGetCredentialProvider - netcoreapp2.1;net461 + netcoreapp3.1;net6.0;net461 latest helpericons.ico $(CredentialProviderVersion) diff --git a/CredentialProvider.Microsoft/CredentialProvider.Microsoft.nuspec b/CredentialProvider.Microsoft/CredentialProvider.Microsoft.nuspec index 3f860904..7367f4d6 100644 --- a/CredentialProvider.Microsoft/CredentialProvider.Microsoft.nuspec +++ b/CredentialProvider.Microsoft/CredentialProvider.Microsoft.nuspec @@ -18,6 +18,7 @@ - + + diff --git a/build/build.yml b/build/build.yml index f2e58499..f31ad713 100644 --- a/build/build.yml +++ b/build/build.yml @@ -4,10 +4,10 @@ parameters: steps: - task: UseDotNet@2 - displayName: Install .NET Core 2.1 runtime + displayName: Install .NET Core 3.1 runtime inputs: packageType: runtime - version: 2.1.x + version: 3.1.x - task: UseDotNet@2 displayName: Use .NET 6 SDK @@ -41,13 +41,13 @@ steps: projects: 'CredentialProvider.Microsoft/CredentialProvider.Microsoft.csproj' feedsToUse: config nugetConfigPath: 'CredentialProvider.Microsoft/NuGet.config' - -- task: MSBuild@1 + +- task: VSBuild@1 displayName: Build CredentialProvider inputs: solution: 'CredentialProvider.Microsoft/CredentialProvider.Microsoft.csproj' configuration: '$(BuildConfiguration)' - msbuildArguments: '/t:rebuild' + msbuildArgs: '/t:rebuild' - ${{ if eq(parameters.sign, 'true') }}: - task: MSBuild@1 @@ -70,27 +70,76 @@ steps: DropFolder: '$(Build.ArtifactStagingDirectory)\$(BuildConfiguration)\vsix\' AccessToken: $(DevDivDropManageAccessToken) +- ${{ if ne(parameters.sign, 'true') }}: + - task: DotNetCoreCLI@2 + displayName: dotnet test + inputs: + command: test + projects: 'CredentialProvider.Microsoft.Tests/CredentialProvider.Microsoft.Tests.csproj' + - task: DotNetCoreCLI@2 - displayName: dotnet publish netcoreapp2.1 + displayName: dotnet publish net6.0 inputs: command: publish publishWebProjects: false projects: 'CredentialProvider.Microsoft/CredentialProvider.Microsoft.csproj' - arguments: '--no-build --framework netcoreapp2.1 --configuration $(BuildConfiguration)' + arguments: '--no-build --framework net6.0 --configuration $(BuildConfiguration)' zipAfterPublish: false modifyOutputPath: false -- ${{ if ne(parameters.sign, 'true') }}: - - task: DotNetCoreCLI@2 - displayName: dotnet test - inputs: - command: test - projects: 'CredentialProvider.Microsoft.Tests/CredentialProvider.Microsoft.Tests.csproj' +# Create .NET 6.0 release for netcore users +- task: CopyFiles@2 + displayName: Copy net6.0 files into tarball + inputs: + sourceFolder: '$(Build.SourcesDirectory)\CredentialProvider.Microsoft\bin\$(BuildConfiguration)\net6.0\publish\' + contents: '**\*' + targetFolder: '$(Build.ArtifactStagingDirectory)\tarball\plugins\netcore\CredentialProvider.Microsoft\' + cleanTargetFolder: true + +- task: CopyFiles@2 + displayName: Copy license files into tarball + inputs: + contents: | + LICENSE + CredentialProvider.Microsoft\EULA_Microsoft Visual Studio Team Services Credential Provider.docx + CredentialProvider.Microsoft\ThirdPartyNotices.txt + targetFolder: '$(Build.ArtifactStagingDirectory)\tarball\' + flattenFolders: true + +- task: ArchiveFiles@2 + displayName: Create net6.0 tarball + inputs: + rootFolderOrFile: '$(Build.ArtifactStagingDirectory)\tarball\' + includeRootFolder: false + archiveType: 'tar' + tarCompression: 'gz' + archiveFile: '$(Build.ArtifactStagingDirectory)\$(BuildConfiguration)\Microsoft.Net6.NuGet.CredentialProvider.tar.gz' + replaceExistingArchive: true + +- task: ArchiveFiles@2 + displayName: Create net6.0 zip + inputs: + rootFolderOrFile: '$(Build.ArtifactStagingDirectory)\tarball\' + includeRootFolder: false + archiveType: 'zip' + archiveFile: '$(Build.ArtifactStagingDirectory)\$(BuildConfiguration)\Microsoft.Net6.NuGet.CredentialProvider.zip' + replaceExistingArchive: true + +# Clean target folder and create netcore 3.1 and netfx releases +- task: DotNetCoreCLI@2 + displayName: dotnet publish netcoreapp3.1 + inputs: + command: publish + publishWebProjects: false + projects: 'CredentialProvider.Microsoft/CredentialProvider.Microsoft.csproj' + arguments: '--no-build --framework netcoreapp3.1 --configuration $(BuildConfiguration)' + zipAfterPublish: false + modifyOutputPath: false - task: CopyFiles@2 - displayName: Copy netcore files into tarball + displayName: Copy netcore 3.1 files into tarball inputs: - sourceFolder: '$(Build.SourcesDirectory)\CredentialProvider.Microsoft\bin\$(BuildConfiguration)\netcoreapp2.1\publish\' + sourceFolder: '$(Build.SourcesDirectory)\CredentialProvider.Microsoft\bin\$(BuildConfiguration)\netcoreapp3.1\publish\' contents: '**\*' targetFolder: '$(Build.ArtifactStagingDirectory)\tarball\plugins\netcore\CredentialProvider.Microsoft\' cleanTargetFolder: true @@ -106,23 +155,23 @@ steps: flattenFolders: true - task: ArchiveFiles@2 - displayName: Create netcore tarball + displayName: Create netcore 3.1 tarball inputs: rootFolderOrFile: '$(Build.ArtifactStagingDirectory)\tarball\' includeRootFolder: false archiveType: 'tar' tarCompression: 'gz' - archiveFile: '$(Build.ArtifactStagingDirectory)\$(BuildConfiguration)\Microsoft.NetCore2.NuGet.CredentialProvider.tar.gz' + archiveFile: '$(Build.ArtifactStagingDirectory)\$(BuildConfiguration)\Microsoft.NetCore3.NuGet.CredentialProvider.tar.gz' replaceExistingArchive: true # NOTE: Changing the name of the zip will break things. Please don't do it. - task: ArchiveFiles@2 - displayName: Create netcore zip + displayName: Create netcore 3.1 zip inputs: rootFolderOrFile: '$(Build.ArtifactStagingDirectory)\tarball\' includeRootFolder: false archiveType: 'zip' - archiveFile: '$(Build.ArtifactStagingDirectory)\$(BuildConfiguration)\Microsoft.NetCore2.NuGet.CredentialProvider.zip' + archiveFile: '$(Build.ArtifactStagingDirectory)\$(BuildConfiguration)\Microsoft.NetCore3.NuGet.CredentialProvider.zip' replaceExistingArchive: true - task: CopyFiles@2 @@ -133,7 +182,7 @@ steps: targetFolder: '$(Build.ArtifactStagingDirectory)\tarball\plugins\netfx\CredentialProvider.Microsoft\' - task: ArchiveFiles@2 - displayName: Create tarball + displayName: Create netfx tarball inputs: rootFolderOrFile: '$(Build.ArtifactStagingDirectory)\tarball\' includeRootFolder: false