Move/Pin to 3.1 runtime (#688)

Move/Pin to 3.1 runtime
This commit is contained in:
Marco Rossignoli
2020-01-14 14:46:22 +01:00
committed by GitHub
parent 8cb1ebc0da
commit caac526075
19 changed files with 105 additions and 40 deletions
+5
View File
@@ -2,6 +2,11 @@
Contributions are highly welcome, however, except for very small changes, kindly file an issue and let's have a discussion before you open a pull request.
## Requirements
.NET SDK 2.2 https://dotnet.microsoft.com/download/dotnet-core/2.2
.NET SDK 3.1 https://dotnet.microsoft.com/download/dotnet-core/3.1
## Building the Project
Clone this repo:
+2 -1
View File
@@ -4,11 +4,12 @@
<RepoRoot>$(MSBuildThisFileDirectory)</RepoRoot>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<PackageOutputPath>$(MSBuildThisFileDirectory)bin\$(Configuration)\Packages\</PackageOutputPath>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<MSBuildTreatWarningsAsErrors>true</MSBuildTreatWarningsAsErrors>
<LangVersion>preview</LangVersion>
</PropertyGroup>
<ItemGroup>
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

+8 -3
View File
@@ -1,7 +1,12 @@
steps:
- task: UseDotNet@2
inputs:
version: 2.2.402
version: 2.2.207
displayName: Install .NET Core SDK
- task: UseDotNet@2
inputs:
version: 3.1.100
displayName: Install .NET Core SDK
- script: dotnet restore
@@ -10,7 +15,7 @@ steps:
- script: dotnet build -c $(BuildConfiguration) --no-restore
displayName: Build
- script: dotnet pack -c $(BuildConfiguration) --no-build
- script: dotnet pack -c $(BuildConfiguration)
displayName: Pack
- task: DotNetCoreCLI@2
@@ -18,4 +23,4 @@ steps:
inputs:
command: test
arguments: -c $(BuildConfiguration) --no-build /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Include=[coverlet.*]* /p:Exclude=[coverlet.tests.remoteexecutor]*
testRunTitle: $(Agent.JobName)
testRunTitle: $(Agent.JobName)
+4 -4
View File
@@ -1,5 +1,5 @@
{
"sdk": {
"version": "2.2.402"
}
}
"sdk": {
"version": "3.1.100"
}
}
@@ -1,22 +1,35 @@
<Project Sdk="Microsoft.NET.Sdk" >
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<AssemblyTitle>coverlet.collector</AssemblyTitle>
<PackageId>coverlet.collector</PackageId>
<DevelopmentDependency>true</DevelopmentDependency>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<IncludeBuildOutput>false</IncludeBuildOutput>
<!--
suppress warning https://docs.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu5128
If your package does not contain any lib/ or ref/ files and is not a meta-package,
it likely does not have any dependencies that the package consumer needs.
If you are packing with NuGet's MSBuild Pack target, you can set <SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking> in any PropertyGroup in your project file.
-->
<SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackBuildOutputs</TargetsForTfmSpecificContentInPackage>
<!-- Open issue https://github.com/NuGet/Home/issues/8941 -->
<NoWarn>$(NoWarn);NU5127</NoWarn>
</PropertyGroup>
<!-- Nuget package properties https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets -->
<PropertyGroup>
<Title>coverlet.collector</Title>
<PackageId>coverlet.collector</PackageId>
<Authors>tonerdo</Authors>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>http://github.com/tonerdo/coverlet</PackageProjectUrl>
<PackageIconUrl>https://raw.githubusercontent.com/tonerdo/coverlet/master/_assets/coverlet-icon.svg?sanitize=true</PackageIconUrl>
<PackageIcon>coverlet-icon.png</PackageIcon>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<DevelopmentDependency>true</DevelopmentDependency>
<Description>Coverlet is a cross platform code coverage library for .NET, with support for line, branch and method coverage.</Description>
<PackageTags>coverage testing unit-test lcov opencover quality</PackageTags>
<RepositoryType>git</RepositoryType>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<IncludeBuildOutput>false</IncludeBuildOutput>
<SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackBuildOutputs</TargetsForTfmSpecificContentInPackage>
</PropertyGroup>
<ItemGroup>
@@ -25,6 +38,7 @@
<ItemGroup>
<None Update="build\**" Pack="true" PackagePath="" />
<None Include="$(MSBuildThisFileDirectory)..\..\_assets\coverlet-icon.png" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
+11 -2
View File
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
@@ -6,11 +6,16 @@
<ToolCommandName>coverlet</ToolCommandName>
<PackAsTool>true</PackAsTool>
<AssemblyTitle>coverlet.console</AssemblyTitle>
<Authors>tonerdo</Authors>
</PropertyGroup>
<!-- Nuget package properties https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets -->
<PropertyGroup>
<PackageId>$(AssemblyTitle)</PackageId>
<Authors>tonerdo</Authors>
<Description>Coverlet is a cross platform code coverage tool for .NET, with support for line, branch and method coverage.</Description>
<PackageTags>coverage;testing;unit-test;lcov;opencover;quality</PackageTags>
<PackageIconUrl>https://raw.githubusercontent.com/tonerdo/coverlet/master/_assets/coverlet-icon.svg?sanitize=true</PackageIconUrl>
<PackageIcon>coverlet-icon.png</PackageIcon>
<PackageProjectUrl>https://github.com/tonerdo/coverlet</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryType>git</RepositoryType>
@@ -24,4 +29,8 @@
<ProjectReference Include="$(MSBuildThisFileDirectory)..\coverlet.core\coverlet.core.csproj" />
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)..\..\_assets\coverlet-icon.png" Pack="true" PackagePath="\"/>
</ItemGroup>
</Project>
-1
View File
@@ -5,7 +5,6 @@
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyVersion>5.3.0</AssemblyVersion>
<IsPackable>false</IsPackable>
<LangVersion>preview</LangVersion>
</PropertyGroup>
<ItemGroup>
@@ -4,21 +4,33 @@
<OutputType>Library</OutputType>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyTitle>coverlet.msbuild.tasks</AssemblyTitle>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackBuildOutputs</TargetsForTfmSpecificContentInPackage>
<ContentTargetFolders>build</ContentTargetFolders>
<IncludeBuildOutput>false</IncludeBuildOutput>
<!--
suppress warning https://docs.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu5128
If your package does not contain any lib/ or ref/ files and is not a meta-package,
it likely does not have any dependencies that the package consumer needs.
If you are packing with NuGet's MSBuild Pack target, you can set <SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking> in any PropertyGroup in your project file.
-->
<SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
</PropertyGroup>
<!-- Nuget package properties https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets -->
<PropertyGroup>
<PackageId>coverlet.msbuild</PackageId>
<Title>coverlet.msbuild</Title>
<Authors>tonerdo</Authors>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>http://github.com/tonerdo/coverlet</PackageProjectUrl>
<PackageIconUrl>https://raw.githubusercontent.com/tonerdo/coverlet/master/_assets/coverlet-icon.svg?sanitize=true</PackageIconUrl>
<PackageIcon>coverlet-icon.png</PackageIcon>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<DevelopmentDependency>true</DevelopmentDependency>
<Description>Coverlet is a cross platform code coverage library for .NET, with support for line, branch and method coverage.</Description>
<PackageTags>coverage testing unit-test lcov opencover quality</PackageTags>
<RepositoryType>git</RepositoryType>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackBuildOutputs</TargetsForTfmSpecificContentInPackage>
<ContentTargetFolders>build</ContentTargetFolders>
<IncludeBuildOutput>false</IncludeBuildOutput>
</PropertyGroup>
<ItemGroup>
@@ -30,7 +42,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="..\coverlet.console\ConsoleTables\ConsoleTable.cs" Link="ConsoleTables\ConsoleTable.cs" />
<Compile Include="$(MSBuildThisFileDirectory)..\coverlet.console\ConsoleTables\ConsoleTable.cs" Link="ConsoleTables\ConsoleTable.cs" />
</ItemGroup>
<ItemGroup>
@@ -38,6 +50,10 @@
<Content Include="coverlet.msbuild.targets" />
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)..\..\_assets\coverlet-icon.png" Pack="true" PackagePath="\" />
</ItemGroup>
<Target Name="PackBuildOutputs" DependsOnTargets="ResolveProjectReferences;SatelliteDllsProjectOutputGroup;DebugSymbolsProjectOutputGroup;SatelliteDllsProjectOutputGroupDependencies;ResolveAssemblyReferences">
<ItemGroup>
<TfmSpecificPackageFile Include="$(TargetPath)" PackagePath="build\" />
@@ -2,9 +2,8 @@
<Import Project="$(RepoRoot)src\coverlet.msbuild.tasks\coverlet.msbuild.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
<LangVersion>preview</LangVersion>
</PropertyGroup>
<ItemGroup>
@@ -2,7 +2,7 @@
<Import Project="$(RepoRoot)src\coverlet.msbuild.tasks\coverlet.msbuild.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
@@ -346,7 +346,7 @@ namespace Coverlet.Core.Instrumentation.Tests
[Fact]
public void SkipEmbeddedPpdbWithoutLocalSource()
{
string xunitDll = Directory.GetFiles(Directory.GetCurrentDirectory(), "xunit.*.dll").First();
string xunitDll = Directory.GetFiles(Directory.GetCurrentDirectory(), "xunit.core.dll").First();
var loggerMock = new Mock<ILogger>();
Instrumenter instrumenter = new Instrumenter(xunitDll, "_xunit_instrumented", Array.Empty<string>(), Array.Empty<string>(), Array.Empty<string>(), Array.Empty<string>(), false, loggerMock.Object, _instrumentationHelper, new FileSystem());
Assert.True(_instrumentationHelper.HasPdb(xunitDll, out bool embedded));
@@ -2,9 +2,8 @@
<Import Project="$(RepoRoot)src\coverlet.msbuild.tasks\coverlet.msbuild.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
<LangVersion>preview</LangVersion>
<NoWarn>$(NoWarn);CS8002</NoWarn>
<!--For test TestInstrument_NetstandardAwareAssemblyResolver_PreserveCompilationContext-->
<PreserveCompilationContext>true</PreserveCompilationContext>
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
<AssemblyName>coverletsamplelib.integration.template</AssemblyName>
</PropertyGroup>
+24 -5
View File
@@ -25,6 +25,12 @@ namespace Coverlet.Integration.Tests
private BuildConfiguration GetAssemblyBuildConfiguration()
{
var configurationAttribute = Assembly.GetExecutingAssembly().GetCustomAttribute<AssemblyConfigurationAttribute>();
if (configurationAttribute is null)
{
throw new ArgumentNullException("AssemblyConfigurationAttribute not found");
}
if (configurationAttribute.Configuration.Equals("Debug", StringComparison.InvariantCultureIgnoreCase))
{
return BuildConfiguration.Debug;
@@ -260,6 +266,11 @@ namespace Coverlet.Integration.Tests
private protected void PinSDK(ClonedTemplateProject project, string sdkVersion)
{
if (project is null)
{
throw new ArgumentNullException(nameof(project));
}
if (string.IsNullOrEmpty(sdkVersion))
{
throw new ArgumentException("Invalid sdkVersion", nameof(sdkVersion));
@@ -270,15 +281,19 @@ namespace Coverlet.Integration.Tests
throw new FileNotFoundException("coverlet.integration.template.csproj not found", "coverlet.integration.template.csproj");
}
if (project.ProjectRootPath is null || !Directory.Exists(project.ProjectRootPath))
{
throw new ArgumentException("Invalid ProjectRootPath");
}
File.WriteAllText(Path.Combine(project.ProjectRootPath, "global.json"), $"{{ \"sdk\": {{ \"version\": \"{sdkVersion}\" }} }}");
}
}
class ClonedTemplateProject : IDisposable
{
private bool _cleanupOnDispose;
public string? ProjectRootPath { get; private set; }
public string ProjectRootPath { get; private set; }
public bool CleanupOnDispose { get; private set; }
// We need to have a different asm name to avoid issue with collectors, we filter [coverlet.*]* by default
// https://github.com/tonerdo/coverlet/pull/410#discussion_r284526728
@@ -286,7 +301,11 @@ namespace Coverlet.Integration.Tests
public static string ProjectFileName { get; } = "coverlet.integration.template.csproj";
public string ProjectFileNamePath => Path.Combine(ProjectRootPath, "coverlet.integration.template.csproj");
public ClonedTemplateProject(string projectRootPath, bool cleanupOnDispose) => (ProjectRootPath, _cleanupOnDispose) = (projectRootPath, cleanupOnDispose);
public ClonedTemplateProject(string? projectRootPath, bool cleanupOnDispose)
{
ProjectRootPath = (projectRootPath ?? throw new ArgumentNullException(nameof(projectRootPath)));
CleanupOnDispose = cleanupOnDispose;
}
public bool IsMultipleTargetFramework()
{
@@ -314,7 +333,7 @@ namespace Coverlet.Integration.Tests
public void Dispose()
{
if (_cleanupOnDispose)
if (CleanupOnDispose)
{
Directory.Delete(ProjectRootPath, true);
}
@@ -1,9 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
<LangVersion>preview</LangVersion>
<Nullable>enable</Nullable>
</PropertyGroup>
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
<IsTestProject>false</IsTestProject>
</PropertyGroup>
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>Coverlet.Tests.RemoteExecutor</RootNamespace>
<IsPackable>false</IsPackable>
<IsTestProject>false</IsTestProject>
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
<IsTestProject>false</IsTestProject>
</PropertyGroup>