Flow the version suffix via pack as well

This commit is contained in:
David Fowler 2016-02-18 02:27:35 -08:00
parent c941162b17
commit ed16632a33
4 changed files with 46 additions and 15 deletions

View file

@ -17,18 +17,22 @@ namespace Microsoft.DotNet.Tools.Pack
private readonly string _buildBasePath; private readonly string _buildBasePath;
private readonly string _configuration; private readonly string _configuration;
private readonly string _versionSuffix;
private bool SkipBuild => _artifactPathsCalculator.CompiledArtifactsPathSet; private bool SkipBuild => _artifactPathsCalculator.CompiledArtifactsPathSet;
public BuildProjectCommand( public BuildProjectCommand(
Project project, Project project,
ArtifactPathsCalculator artifactPathsCalculator, ArtifactPathsCalculator artifactPathsCalculator,
string buildBasePath, string buildBasePath,
string configuration) string configuration,
string versionSuffix)
{ {
_project = project; _project = project;
_artifactPathsCalculator = artifactPathsCalculator; _artifactPathsCalculator = artifactPathsCalculator;
_buildBasePath = buildBasePath; _buildBasePath = buildBasePath;
_configuration = configuration; _configuration = configuration;
_versionSuffix = versionSuffix;
} }
public int Execute() public int Execute()
@ -44,6 +48,12 @@ namespace Microsoft.DotNet.Tools.Pack
argsBuilder.Add("--configuration"); argsBuilder.Add("--configuration");
argsBuilder.Add($"{_configuration}"); argsBuilder.Add($"{_configuration}");
if (!string.IsNullOrEmpty(_versionSuffix))
{
argsBuilder.Add("--version-suffix");
argsBuilder.Add(_versionSuffix);
}
if (!string.IsNullOrEmpty(_buildBasePath)) if (!string.IsNullOrEmpty(_buildBasePath))
{ {
argsBuilder.Add("--build-base-path"); argsBuilder.Add("--build-base-path");

View file

@ -39,12 +39,12 @@ namespace Microsoft.DotNet.Tools.Compiler
pathValue = Directory.GetCurrentDirectory(); pathValue = Directory.GetCurrentDirectory();
} }
if(!pathValue.EndsWith(Project.FileName)) if (!pathValue.EndsWith(Project.FileName))
{ {
pathValue = Path.Combine(pathValue, Project.FileName); pathValue = Path.Combine(pathValue, Project.FileName);
} }
if(!File.Exists(pathValue)) if (!File.Exists(pathValue))
{ {
Reporter.Error.WriteLine($"Unable to find a project.json in {pathValue}"); Reporter.Error.WriteLine($"Unable to find a project.json in {pathValue}");
return 1; return 1;
@ -52,18 +52,18 @@ namespace Microsoft.DotNet.Tools.Compiler
// Set defaults based on the environment // Set defaults based on the environment
var settings = ProjectReaderSettings.ReadFromEnvironment(); var settings = ProjectReaderSettings.ReadFromEnvironment();
var versionSuffixValue = versionSuffix.Value();
if (versionSuffix.HasValue()) if (!string.IsNullOrEmpty(versionSuffixValue))
{ {
settings.VersionSuffix = versionSuffix.Value(); settings.VersionSuffix = versionSuffixValue;
} }
var contexts = ProjectContext.CreateContextForEachFramework(pathValue, settings);
var configValue = configuration.Value() ?? Cli.Utils.Constants.DefaultConfiguration; var configValue = configuration.Value() ?? Cli.Utils.Constants.DefaultConfiguration;
var outputValue = output.Value(); var outputValue = output.Value();
var buildBasePathValue = buildBasePath.Value(); var buildBasePathValue = buildBasePath.Value();
var contexts = ProjectContext.CreateContextForEachFramework(pathValue, settings);
var project = contexts.First().ProjectFile; var project = contexts.First().ProjectFile;
var artifactPathsCalculator = new ArtifactPathsCalculator(project, buildBasePathValue, outputValue, configValue); var artifactPathsCalculator = new ArtifactPathsCalculator(project, buildBasePathValue, outputValue, configValue);
@ -72,7 +72,7 @@ namespace Microsoft.DotNet.Tools.Compiler
int buildResult = 0; int buildResult = 0;
if (!noBuild.HasValue()) if (!noBuild.HasValue())
{ {
var buildProjectCommand = new BuildProjectCommand(project, artifactPathsCalculator, buildBasePathValue, configValue); var buildProjectCommand = new BuildProjectCommand(project, artifactPathsCalculator, buildBasePathValue, configValue, versionSuffixValue);
buildResult = buildProjectCommand.Execute(); buildResult = buildProjectCommand.Execute();
} }
@ -92,6 +92,6 @@ namespace Microsoft.DotNet.Tools.Compiler
#endif #endif
return 1; return 1;
} }
} }
} }
} }

View file

@ -7,11 +7,11 @@ using System.Linq;
using System.Reflection.Metadata; using System.Reflection.Metadata;
using System.Reflection.PortableExecutable; using System.Reflection.PortableExecutable;
namespace Microsoft.DotNet.Tools.Builder.Tests namespace Microsoft.DotNet.Tools.Test.Utilities
{ {
public static class PeReaderUtils public static class PeReaderUtils
{ {
internal static string GetAssemblyAttributeValue(string assemblyPath, string attributeName) public static string GetAssemblyAttributeValue(string assemblyPath, string attributeName)
{ {
if (!File.Exists(assemblyPath)) if (!File.Exists(assemblyPath))
{ {

View file

@ -3,6 +3,8 @@
using System; using System;
using System.IO; using System.IO;
using FluentAssertions;
using Microsoft.DotNet.ProjectModel;
using Microsoft.DotNet.Tools.Test.Utilities; using Microsoft.DotNet.Tools.Test.Utilities;
using Xunit; using Xunit;
@ -56,6 +58,25 @@ namespace Microsoft.DotNet.Tools.Compiler.Tests
outputDir.Should().Exist(); outputDir.Should().Exist();
outputDir.Should().HaveFiles(new[] { "TestLibrary.1.0.0.nupkg", "TestLibrary.1.0.0.symbols.nupkg" }); outputDir.Should().HaveFiles(new[] { "TestLibrary.1.0.0.nupkg", "TestLibrary.1.0.0.symbols.nupkg" });
} }
[Fact]
public void SettingVersionSuffixFlag_ShouldStampAssemblyInfoInOutputAssemblyAndPackage()
{
var testInstance = TestAssetsManager.CreateTestInstance("TestLibraryWithConfiguration")
.WithLockFiles();
var cmd = new PackCommand(Path.Combine(testInstance.TestRoot, Project.FileName), versionSuffix: "85");
cmd.Execute().Should().Pass();
var output = Path.Combine(testInstance.TestRoot, "bin", "Debug", DefaultFramework, "TestLibraryWithConfiguration.dll");
var informationalVersion = PeReaderUtils.GetAssemblyAttributeValue(output, "AssemblyInformationalVersionAttribute");
informationalVersion.Should().NotBeNull();
informationalVersion.Should().BeEquivalentTo("1.0.0-85");
var outputPackage = Path.Combine(testInstance.TestRoot, "bin", "Debug", "TestLibraryWithConfiguration.1.0.0-85.nupkg");
File.Exists(outputPackage).Should().BeTrue(outputPackage);
}
private void CopyProjectToTempDir(string projectDir, TempDirectory tempDir) private void CopyProjectToTempDir(string projectDir, TempDirectory tempDir)
{ {