From d0b28b38e763f5c2b549a7f280922f2d56c14e0a Mon Sep 17 00:00:00 2001 From: Sarah Oslund Date: Mon, 4 May 2020 14:22:05 -0700 Subject: [PATCH 1/2] Adding RepositoryUrl to generated AssemblyInfo.cs --- ...Microsoft.NET.GenerateAssemblyInfo.targets | 5 ++ ...hatWeWantToControlGeneratedAssemblyInfo.cs | 47 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.GenerateAssemblyInfo.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.GenerateAssemblyInfo.targets index 73a9d49109d4..4bd03057d27e 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.GenerateAssemblyInfo.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.GenerateAssemblyInfo.targets @@ -96,6 +96,11 @@ Copyright (c) .NET Foundation. All rights reserved. <_Parameter1>$(AssemblyVersion) + + <_Parameter1>RepositoryUrl + <_Parameter2 Condition="'$(RepositoryUrl)' != ''">$(RepositoryUrl) + <_Parameter2 Condition="'$(RepositoryUrl)' == ''">$(PrivateRepositoryUrl) + <_Parameter1>$(NeutralLanguage) diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs index 09ed07100c4b..5baec213e61d 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs @@ -595,5 +595,52 @@ public void GenerateUserSecretsForTestProject() AssemblyInfo.Get(assemblyPath)["UserSecretsIdAttribute"].Should().Be("SecretsIdValue"); } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void It_includes_repository_url(bool privateRepo) + { + var fakeUrl = "fakeUrl"; + var testAsset = _testAssetsManager + .CopyTestAsset("HelloWorld") + .WithSource() + .WithTargetFramework("netcoreapp3.1"); + if (privateRepo) + { + testAsset = testAsset + .WithProjectChanges((path, project) => + { + var ns = project.Root.Name.Namespace; + + project.Root.Add( + new XElement(ns + "PropertyGroup", + new XElement(ns + "PublishRepositoryUrl", true))); + project.Root.Add( + new XElement(ns + "PropertyGroup", + new XElement(ns + "PrivateRepositoryUrl", fakeUrl))); + }); + } + else + { + testAsset = testAsset + .WithProjectChanges((path, project) => + { + var ns = project.Root.Name.Namespace; + + project.Root.Add( + new XElement(ns + "PropertyGroup", + new XElement(ns + "RepositoryUrl", fakeUrl))); + }); + } + + + var buildCommand = new BuildCommand(Log, testAsset.TestRoot); + buildCommand.Execute().Should().Pass(); + + var assemblyPath = Path.Combine(buildCommand.GetOutputDirectory("netcoreapp3.1").FullName, "HelloWorld.dll"); + + AssemblyInfo.Get(assemblyPath)["AssemblyMetadataAttribute"].Should().Be("RepositoryUrl:" + fakeUrl); + } } } From 0d5d60ca2e5129669c1fb71f3c05975f613e9e3a Mon Sep 17 00:00:00 2001 From: Sarah Oslund Date: Tue, 5 May 2020 08:25:00 -0700 Subject: [PATCH 2/2] Converting to testProject testing format --- ...hatWeWantToControlGeneratedAssemblyInfo.cs | 42 +++++++------------ 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs index 5baec213e61d..e349d820a064 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs @@ -602,43 +602,29 @@ public void GenerateUserSecretsForTestProject() public void It_includes_repository_url(bool privateRepo) { var fakeUrl = "fakeUrl"; - var testAsset = _testAssetsManager - .CopyTestAsset("HelloWorld") - .WithSource() - .WithTargetFramework("netcoreapp3.1"); - if (privateRepo) + var testProject = new TestProject() { - testAsset = testAsset - .WithProjectChanges((path, project) => - { - var ns = project.Root.Name.Namespace; + Name = "RepoUrlProject", + IsSdkProject = true, + TargetFrameworks = "netcoreapp3.1" + }; - project.Root.Add( - new XElement(ns + "PropertyGroup", - new XElement(ns + "PublishRepositoryUrl", true))); - project.Root.Add( - new XElement(ns + "PropertyGroup", - new XElement(ns + "PrivateRepositoryUrl", fakeUrl))); - }); + if (privateRepo) + { + testProject.AdditionalProperties["PublishRepositoryUrl"] = "true"; + testProject.AdditionalProperties["PrivateRepositoryUrl"] = fakeUrl; } else { - testAsset = testAsset - .WithProjectChanges((path, project) => - { - var ns = project.Root.Name.Namespace; - - project.Root.Add( - new XElement(ns + "PropertyGroup", - new XElement(ns + "RepositoryUrl", fakeUrl))); - }); - } + testProject.AdditionalProperties["RepositoryUrl"] = fakeUrl; + } + var testAsset = _testAssetsManager.CreateTestProject(testProject); - var buildCommand = new BuildCommand(Log, testAsset.TestRoot); + var buildCommand = new BuildCommand(Log, Path.Combine(testAsset.TestRoot, testProject.Name)); buildCommand.Execute().Should().Pass(); - var assemblyPath = Path.Combine(buildCommand.GetOutputDirectory("netcoreapp3.1").FullName, "HelloWorld.dll"); + var assemblyPath = Path.Combine(buildCommand.GetOutputDirectory("netcoreapp3.1").FullName, testProject.Name + ".dll"); AssemblyInfo.Get(assemblyPath)["AssemblyMetadataAttribute"].Should().Be("RepositoryUrl:" + fakeUrl); }