diff --git a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt b/src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt similarity index 100% rename from src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt rename to src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt diff --git a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt b/src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt similarity index 100% rename from src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt rename to src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt diff --git a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt b/src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt similarity index 100% rename from src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt rename to src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt diff --git a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt b/src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt similarity index 100% rename from src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt rename to src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt diff --git a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt b/src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt similarity index 100% rename from src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt rename to src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt diff --git a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt b/src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt similarity index 100% rename from src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt rename to src/GitVersionCore.Tests/Approved/cs/AssemblyInfoFileUpdaterTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt diff --git a/src/GitVersionCore.Tests/Approved/cs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersionCore.Tests/Approved/cs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt new file mode 100644 index 0000000000..698163acfe --- /dev/null +++ b/src/GitVersionCore.Tests/Approved/cs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt @@ -0,0 +1,41 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// GitVersion +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[global::System.Runtime.CompilerServices.CompilerGenerated] +static class GitVersionInformation +{ + public static string Major = "1"; + public static string Minor = "2"; + public static string Patch = "3"; + public static string PreReleaseTag = "unstable.4"; + public static string PreReleaseTagWithDash = "-unstable.4"; + public static string PreReleaseLabel = "unstable"; + public static string PreReleaseNumber = "4"; + public static string BuildMetaData = "5"; + public static string BuildMetaDataPadded = "0005"; + public static string FullBuildMetaData = "5.Branch.feature1.Sha.commitSha"; + public static string MajorMinorPatch = "1.2.3"; + public static string SemVer = "1.2.3-unstable.4"; + public static string LegacySemVer = "1.2.3-unstable4"; + public static string LegacySemVerPadded = "1.2.3-unstable0004"; + public static string AssemblySemVer = "1.2.3.0"; + public static string AssemblySemFileVer = "1.2.3.0"; + public static string FullSemVer = "1.2.3-unstable.4+5"; + public static string InformationalVersion = "1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha"; + public static string BranchName = "feature1"; + public static string Sha = "commitSha"; + public static string NuGetVersionV2 = "1.2.3-unstable0004"; + public static string NuGetVersion = "1.2.3-unstable0004"; + public static string NuGetPreReleaseTagV2 = "unstable0004"; + public static string NuGetPreReleaseTag = "unstable0004"; + public static string CommitsSinceVersionSource = "5"; + public static string CommitsSinceVersionSourcePadded = "0005"; + public static string CommitDate = "2014-03-06"; +} diff --git a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt b/src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt similarity index 100% rename from src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt rename to src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt diff --git a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt b/src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt similarity index 93% rename from src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt rename to src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt index e149fe213b..ae02e71990 100644 --- a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt +++ b/src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt @@ -5,6 +5,7 @@ // You can modify this code as we will not overwrite it when re-executing GitVersion // //------------------------------------------------------------------------------ +namespace GitVersionAssemblyInfoFile open System.Reflection diff --git a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt b/src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt similarity index 93% rename from src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt rename to src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt index e149fe213b..ae02e71990 100644 --- a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt +++ b/src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt @@ -5,6 +5,7 @@ // You can modify this code as we will not overwrite it when re-executing GitVersion // //------------------------------------------------------------------------------ +namespace GitVersionAssemblyInfoFile open System.Reflection diff --git a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt b/src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt similarity index 93% rename from src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt rename to src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt index e149fe213b..ae02e71990 100644 --- a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt +++ b/src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt @@ -5,6 +5,7 @@ // You can modify this code as we will not overwrite it when re-executing GitVersion // //------------------------------------------------------------------------------ +namespace GitVersionAssemblyInfoFile open System.Reflection diff --git a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt b/src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt similarity index 100% rename from src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt rename to src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt diff --git a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt b/src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt similarity index 100% rename from src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt rename to src/GitVersionCore.Tests/Approved/fs/AssemblyInfoFileUpdaterTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt diff --git a/src/GitVersionCore.Tests/Approved/fs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersionCore.Tests/Approved/fs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt new file mode 100644 index 0000000000..f7ff69ede2 --- /dev/null +++ b/src/GitVersionCore.Tests/Approved/fs/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt @@ -0,0 +1,40 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// GitVersion +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[] +[] +module GitVersionInformation + let Major = "1" + let Minor = "2" + let Patch = "3" + let PreReleaseTag = "unstable.4" + let PreReleaseTagWithDash = "-unstable.4" + let PreReleaseLabel = "unstable" + let PreReleaseNumber = "4" + let BuildMetaData = "5" + let BuildMetaDataPadded = "0005" + let FullBuildMetaData = "5.Branch.feature1.Sha.commitSha" + let MajorMinorPatch = "1.2.3" + let SemVer = "1.2.3-unstable.4" + let LegacySemVer = "1.2.3-unstable4" + let LegacySemVerPadded = "1.2.3-unstable0004" + let AssemblySemVer = "1.2.3.0" + let AssemblySemFileVer = "1.2.3.0" + let FullSemVer = "1.2.3-unstable.4+5" + let InformationalVersion = "1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha" + let BranchName = "feature1" + let Sha = "commitSha" + let NuGetVersionV2 = "1.2.3-unstable0004" + let NuGetVersion = "1.2.3-unstable0004" + let NuGetPreReleaseTagV2 = "unstable0004" + let NuGetPreReleaseTag = "unstable0004" + let CommitsSinceVersionSource = "5" + let CommitsSinceVersionSourcePadded = "0005" + let CommitDate = "2014-03-06" \ No newline at end of file diff --git a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt similarity index 58% rename from src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt rename to src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt index 432068eb64..cbe0757c32 100644 --- a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt +++ b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt @@ -1,3 +1,3 @@ - + diff --git a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt similarity index 73% rename from src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt rename to src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt index ef98f9db7b..5a17cea41d 100644 --- a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt +++ b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt @@ -8,6 +8,6 @@ Imports System.Reflection - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt similarity index 73% rename from src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt rename to src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt index ef98f9db7b..5a17cea41d 100644 --- a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt +++ b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt @@ -8,6 +8,6 @@ Imports System.Reflection - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt similarity index 73% rename from src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt rename to src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt index ef98f9db7b..5a17cea41d 100644 --- a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt +++ b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt @@ -8,6 +8,6 @@ Imports System.Reflection - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt new file mode 100644 index 0000000000..9bd9b6fa5f --- /dev/null +++ b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt @@ -0,0 +1,2 @@ + + diff --git a/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt new file mode 100644 index 0000000000..9bd9b6fa5f --- /dev/null +++ b/src/GitVersionCore.Tests/Approved/vb/AssemblyInfoFileUpdaterTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt @@ -0,0 +1,2 @@ + + diff --git a/src/GitVersionCore.Tests/Approved/vb/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersionCore.Tests/Approved/vb/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt new file mode 100644 index 0000000000..9f894fffb6 --- /dev/null +++ b/src/GitVersionCore.Tests/Approved/vb/GitVersionInformationGeneratorTests.ShouldCreateFile.approved.txt @@ -0,0 +1,42 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' GitVersion +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + + +NotInheritable Class GitVersionInformation + Private Sub New() + End Sub + Public Shared Major As String = "1" + Public Shared Minor As String = "2" + Public Shared Patch As String = "3" + Public Shared PreReleaseTag As String = "unstable.4" + Public Shared PreReleaseTagWithDash As String = "-unstable.4" + Public Shared PreReleaseLabel As String = "unstable" + Public Shared PreReleaseNumber As String = "4" + Public Shared BuildMetaData As String = "5" + Public Shared BuildMetaDataPadded As String = "0005" + Public Shared FullBuildMetaData As String = "5.Branch.feature1.Sha.commitSha" + Public Shared MajorMinorPatch As String = "1.2.3" + Public Shared SemVer As String = "1.2.3-unstable.4" + Public Shared LegacySemVer As String = "1.2.3-unstable4" + Public Shared LegacySemVerPadded As String = "1.2.3-unstable0004" + Public Shared AssemblySemVer As String = "1.2.3.0" + Public Shared AssemblySemFileVer As String = "1.2.3.0" + Public Shared FullSemVer As String = "1.2.3-unstable.4+5" + Public Shared InformationalVersion As String = "1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha" + Public Shared BranchName As String = "feature1" + Public Shared Sha As String = "commitSha" + Public Shared NuGetVersionV2 As String = "1.2.3-unstable0004" + Public Shared NuGetVersion As String = "1.2.3-unstable0004" + Public Shared NuGetPreReleaseTagV2 As String = "unstable0004" + Public Shared NuGetPreReleaseTag As String = "unstable0004" + Public Shared CommitsSinceVersionSource As String = "5" + Public Shared CommitsSinceVersionSourcePadded As String = "0005" + Public Shared CommitDate As String = "2014-03-06" +End Class \ No newline at end of file diff --git a/src/GitVersionExe.Tests/AssemblyInfoFileUpdateTests.cs b/src/GitVersionCore.Tests/AssemblyInfoFileUpdaterTests.cs similarity index 71% rename from src/GitVersionExe.Tests/AssemblyInfoFileUpdateTests.cs rename to src/GitVersionCore.Tests/AssemblyInfoFileUpdaterTests.cs index 9b7e035dca..dadc0c4bad 100644 --- a/src/GitVersionExe.Tests/AssemblyInfoFileUpdateTests.cs +++ b/src/GitVersionCore.Tests/AssemblyInfoFileUpdaterTests.cs @@ -10,10 +10,10 @@ using Shouldly; [TestFixture] -public class AssemblyInfoFileUpdateTests +public class AssemblyInfoFileUpdaterTests { [SetUp] - public void SetLoggers() + public void Setup() { ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute(); } @@ -27,21 +27,14 @@ public void ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo(strin { var fileSystem = new TestFileSystem(); var workingDir = Path.GetTempPath(); - var assemblyInfoFile = new HashSet - { - "VersionAssemblyInfo." + fileExtension - }; - var fullPath = Path.Combine(workingDir, assemblyInfoFile.First()); + var assemblyInfoFile = "VersionAssemblyInfo." + fileExtension; + var fullPath = Path.Combine(workingDir, assemblyInfoFile); var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false); - var arguments = new Arguments - { - EnsureAssemblyInfo = true, - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = assemblyInfoFile - }; - using (new AssemblyInfoFileUpdate(arguments, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, true)) { + assemblyInfoFileUpdater.Update(); + fileSystem.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension))); } } @@ -55,21 +48,14 @@ public void ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo { var fileSystem = new TestFileSystem(); var workingDir = Path.GetTempPath(); - var assemblyInfoFile = new HashSet - { - Path.Combine("src", "Project", "Properties", "VersionAssemblyInfo." + fileExtension) - }; - var fullPath = Path.Combine(workingDir, assemblyInfoFile.First()); + var assemblyInfoFile = Path.Combine("src", "Project", "Properties", "VersionAssemblyInfo." + fileExtension); + var fullPath = Path.Combine(workingDir, assemblyInfoFile); var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false); - var arguments = new Arguments - { - EnsureAssemblyInfo = true, - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = assemblyInfoFile - }; - using (new AssemblyInfoFileUpdate(arguments, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, true)) { + assemblyInfoFileUpdater.Update(); + fileSystem.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension))); } } @@ -83,22 +69,18 @@ public void ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInf { var fileSystem = new TestFileSystem(); var workingDir = Path.GetTempPath(); - var assemblyInfoFile = new HashSet + var assemblyInfoFiles = new HashSet { "AssemblyInfo." + fileExtension, Path.Combine("src", "Project", "Properties", "VersionAssemblyInfo." + fileExtension) }; var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false); - var arguments = new Arguments - { - EnsureAssemblyInfo = true, - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = assemblyInfoFile - }; - using (new AssemblyInfoFileUpdate(arguments, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFiles, workingDir, variables, fileSystem, true)) { - foreach (var item in assemblyInfoFile) + assemblyInfoFileUpdater.Update(); + + foreach (var item in assemblyInfoFiles) { var fullPath = Path.Combine(workingDir, item); fileSystem.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension))); @@ -113,45 +95,31 @@ public void ShouldNotCreateAssemblyInfoFileWhenNotExistsAndNotEnsureAssemblyInfo { var fileSystem = new TestFileSystem(); var workingDir = Path.GetTempPath(); - var assemblyInfoFile = new HashSet - { - "VersionAssemblyInfo." + fileExtension - }; - var fullPath = Path.Combine(workingDir, assemblyInfoFile.First()); + var assemblyInfoFile = "VersionAssemblyInfo." + fileExtension; + var fullPath = Path.Combine(workingDir, assemblyInfoFile); var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false); - var arguments = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = assemblyInfoFile - }; - using (new AssemblyInfoFileUpdate(arguments, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Exists(fullPath).ShouldBeFalse(); } } - [Test] public void ShouldNotCreateAssemblyInfoFileForUnknownSourceCodeAndEnsureAssemblyInfo() { var fileSystem = Substitute.For(); var workingDir = Path.GetTempPath(); - var assemblyInfoFile = new HashSet - { - "VersionAssemblyInfo.js" - }; - var fullPath = Path.Combine(workingDir, assemblyInfoFile.First()); + var assemblyInfoFile = "VersionAssemblyInfo.js"; + var fullPath = Path.Combine(workingDir, assemblyInfoFile); var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false); - var arguments = new Arguments - { - EnsureAssemblyInfo = true, - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = assemblyInfoFile - }; - using (new AssemblyInfoFileUpdate(arguments, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, true)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received(0).WriteAllText(fullPath, Arg.Any()); } } @@ -161,15 +129,13 @@ public void ShouldStartSearchFromWorkingDirectory() { var fileSystem = Substitute.For(); var workingDir = Path.GetTempPath(); + var assemblyInfoFiles = new HashSet(); + var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false); - var config = new TestEffectiveConfiguration(); - var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), config, false); - var arguments = new Arguments - { - UpdateAssemblyInfo = true - }; - using (new AssemblyInfoFileUpdate(arguments, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFiles, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received().DirectoryGetFiles(Arg.Is(workingDir), Arg.Any(), Arg.Any()); } } @@ -182,20 +148,15 @@ public void ShouldStartSearchFromWorkingDirectory() public void ShouldReplaceAssemblyVersion(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "AssemblyInfo." + fileExtension); + var assemblyInfoFile = "AssemblyInfo." + fileExtension; + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - "AssemblyInfo." + fileExtension - } - }; - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received().WriteAllText(fileName, Arg.Is(s => s.Contains(@"AssemblyVersion(""2.3.0.0"")") && s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") && @@ -204,7 +165,6 @@ public void ShouldReplaceAssemblyVersion(string fileExtension, string assemblyFi }); } - [TestCase("cs", "[assembly: AssemblyFileVersion(\"1.0.0.0\")]")] [TestCase("fs", "[]")] [TestCase("vb", "")] @@ -213,21 +173,15 @@ public void ShouldReplaceAssemblyVersion(string fileExtension, string assemblyFi public void ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "AssemblyInfo." + fileExtension); + var assemblyInfoFile = "AssemblyInfo." + fileExtension; + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.None, verify: (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - "AssemblyInfo." + fileExtension - } - }; - - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + assemblyFileContent = fileSystem.ReadAllText(fileName); assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension))); } @@ -242,20 +196,15 @@ public void ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone(string fileEx public void ShouldReplaceAssemblyVersionInRelativePath(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "Project", "src", "Properties", "AssemblyInfo." + fileExtension); + var assemblyInfoFile = Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension) - } - }; - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received().WriteAllText(fileName, Arg.Is(s => s.Contains(@"AssemblyVersion(""2.3.0.0"")") && s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") && @@ -270,20 +219,15 @@ public void ShouldReplaceAssemblyVersionInRelativePath(string fileExtension, str public void ShouldReplaceAssemblyVersionInRelativePathWithWhiteSpace(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "Project", "src", "Properties", "AssemblyInfo." + fileExtension); + var assemblyInfoFile = Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension) - } - }; - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received().WriteAllText(fileName, Arg.Is(s => s.Contains(@"AssemblyVersion(""2.3.0.0"")") && s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") && @@ -300,20 +244,15 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithWhiteSpace(string file public void ShouldReplaceAssemblyVersionWithStar(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "AssemblyInfo." + fileExtension); + var assemblyInfoFile = "AssemblyInfo." + fileExtension; + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - "AssemblyInfo." + fileExtension - } - }; - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received().WriteAllText(fileName, Arg.Is(s => s.Contains(@"AssemblyVersion(""2.3.0.0"")") && s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") && @@ -330,26 +269,21 @@ public void ShouldReplaceAssemblyVersionWithStar(string fileExtension, string as public void ShouldReplaceAssemblyVersionWithAtttributeSuffix(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "AssemblyInfo." + fileExtension); + var assemblyInfoFile = "AssemblyInfo." + fileExtension; + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - "AssemblyInfo." + fileExtension - } - }; - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received().WriteAllText(fileName, Arg.Is(s => !s.Contains(@"AssemblyVersionAttribute(""1.0.0.0"")") && !s.Contains(@"AssemblyInformationalVersionAttribute(""1.0.0.0"")") && !s.Contains(@"AssemblyFileVersionAttribute(""1.0.0.0"")") && - s.Contains(@"AssemblyVersion(""2.3.1.0"")") && - s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") && + s.Contains(@"AssemblyVersion(""2.3.1.0"")") && + s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") && s.Contains(@"AssemblyFileVersion(""2.3.1.0"")"))); } }); @@ -361,20 +295,15 @@ public void ShouldReplaceAssemblyVersionWithAtttributeSuffix(string fileExtensio public void ShouldAddAssemblyVersionIfMissingFromInfoFile(string fileExtension) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "AssemblyInfo." + fileExtension); + var assemblyInfoFile = "AssemblyInfo." + fileExtension; + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile("", fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - "AssemblyInfo." + fileExtension - } - }; - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received().WriteAllText(fileName, Arg.Is(s => s.Contains(@"AssemblyVersion(""2.3.0.0"")") && s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") && @@ -391,20 +320,15 @@ public void ShouldAddAssemblyVersionIfMissingFromInfoFile(string fileExtension) public void ShouldReplaceAlreadySubstitutedValues(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "AssemblyInfo." + fileExtension); + var assemblyInfoFile = "AssemblyInfo." + fileExtension; + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - "AssemblyInfo." + fileExtension - } - }; - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received().WriteAllText(fileName, Arg.Is(s => s.Contains(@"AssemblyVersion(""2.3.0.0"")") && s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") && @@ -413,7 +337,6 @@ public void ShouldReplaceAlreadySubstitutedValues(string fileExtension, string a }); } - [TestCase("cs", "[assembly: AssemblyVersion(\"1.0.0.0\")]\r\n[assembly: AssemblyInformationalVersion(\"1.0.0.0\")]\r\n[assembly: AssemblyFileVersion(\"1.0.0.0\")]")] [TestCase("fs", "[]\r\n[]\r\n[]")] [TestCase("vb", "\r\n\r\n")] @@ -422,21 +345,15 @@ public void ShouldReplaceAlreadySubstitutedValues(string fileExtension, string a public void ShouldReplaceAssemblyVersionWhenCreatingAssemblyVersionFileAndEnsureAssemblyInfo(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "AssemblyInfo." + fileExtension); + var assemblyInfoFile = "AssemblyInfo." + fileExtension; + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fileSystem, variables) => { - var args = new Arguments - { - EnsureAssemblyInfo = true, - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - "AssemblyInfo." + fileExtension - } - }; - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received().WriteAllText(fileName, Arg.Is(s => s.Contains(@"AssemblyVersion(""2.3.1.0"")") && s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") && @@ -451,20 +368,15 @@ public void ShouldReplaceAssemblyVersionWhenCreatingAssemblyVersionFileAndEnsure public void ShouldReplaceAssemblyVersionInRelativePathWithVariables(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "Project", "src", "Properties", "AssemblyInfo." + fileExtension); + var assemblyInfoFile = Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension) - } - }; - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received().WriteAllText(fileName, Arg.Is(s => s.Contains(@"AssemblyVersion(""2.3.0.0"")") && s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") && @@ -479,20 +391,15 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithVariables(string fileE public void ShouldReplaceAssemblyVersionInRelativePathWithVariablesAndWhiteSpace(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "Project", "src", "Properties", "AssemblyInfo." + fileExtension); + var assemblyInfoFile = Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension) - } - }; - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + fileSystem.Received().WriteAllText(fileName, Arg.Is(s => s.Contains(@"AssemblyVersion(""2.3.0.0"")") && s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") && @@ -509,28 +416,21 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithVariablesAndWhiteSpace public void ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "AssemblyInfo." + fileExtension); + var assemblyInfoFile = "AssemblyInfo." + fileExtension; + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - "AssemblyInfo." + fileExtension - } - }; - - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + assemblyFileContent = fileSystem.ReadAllText(fileName); assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension))); } }); } - [TestCase("cs", "[assembly: AssemblyFileVersion(\"1.0.0.0\")]")] [TestCase("fs", "[]")] [TestCase("vb", "")] @@ -539,21 +439,15 @@ public void ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile public void ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone(string fileExtension, string assemblyFileContent) { var workingDir = Path.GetTempPath(); - var fileName = Path.Combine(workingDir, "AssemblyInfo." + fileExtension); + var assemblyInfoFile = "AssemblyInfo." + fileExtension; + var fileName = Path.Combine(workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.None, verify: (fileSystem, variables) => { - var args = new Arguments - { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFileName = new HashSet - { - "AssemblyInfo." + fileExtension - } - }; - - using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem)) + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false)) { + assemblyInfoFileUpdater.Update(); + assemblyFileContent = fileSystem.ReadAllText(fileName); assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension))); } diff --git a/src/GitVersionCore.Tests/ConfigProviderTests.cs b/src/GitVersionCore.Tests/ConfigProviderTests.cs index cf3c527325..c39740a69a 100644 --- a/src/GitVersionCore.Tests/ConfigProviderTests.cs +++ b/src/GitVersionCore.Tests/ConfigProviderTests.cs @@ -26,6 +26,8 @@ public void Setup() fileSystem = new TestFileSystem(); repoPath = DefaultRepoPath; workingPath = DefaultWorkingPath; + + ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute(); } [Test] diff --git a/src/GitVersionCore.Tests/GitVersionCore.Tests.csproj b/src/GitVersionCore.Tests/GitVersionCore.Tests.csproj index 370f750929..1c888abf5a 100644 --- a/src/GitVersionCore.Tests/GitVersionCore.Tests.csproj +++ b/src/GitVersionCore.Tests/GitVersionCore.Tests.csproj @@ -84,6 +84,7 @@ + @@ -100,6 +101,7 @@ + @@ -169,6 +171,27 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/GitVersionCore.Tests/GitVersionInformationGeneratorTests.cs b/src/GitVersionCore.Tests/GitVersionInformationGeneratorTests.cs new file mode 100644 index 0000000000..a22a8bca1d --- /dev/null +++ b/src/GitVersionCore.Tests/GitVersionInformationGeneratorTests.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using GitVersion; +using NUnit.Framework; +using Shouldly; + +namespace GitVersionCore.Tests +{ + [TestFixture] + public class GitVersionInformationGeneratorTests + { + [SetUp] + public void Setup() + { + ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute(); + } + + [TestCase("cs")] + [TestCase("fs")] + [TestCase("vb")] + [Category("NoMono")] + [Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] + public void ShouldCreateFile(string fileExtension) + { + var fileSystem = new TestFileSystem(); + var directory = Path.GetTempPath(); + var fileName = "GitVersionInformation.g." + fileExtension; + var fullPath = Path.Combine(directory, fileName); + + var semanticVersion = new SemanticVersion + { + Major = 1, + Minor = 2, + Patch = 3, + PreReleaseTag = "unstable4", + BuildMetaData = new SemanticVersionBuildMetaData(5, + "feature1", "commitSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z")) + }; + + var variables = VariableProvider.GetVariablesFor(semanticVersion, new TestEffectiveConfiguration(), false); + var generator = new GitVersionInformationGenerator(fileName, directory, variables, fileSystem); + + generator.Generate(); + + fileSystem.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension))); + } + } +} diff --git a/src/GitVersionCore.Tests/Init/InitScenarios.cs b/src/GitVersionCore.Tests/Init/InitScenarios.cs index 9584dc49cc..57748cc488 100644 --- a/src/GitVersionCore.Tests/Init/InitScenarios.cs +++ b/src/GitVersionCore.Tests/Init/InitScenarios.cs @@ -11,6 +11,12 @@ [TestFixture] public class InitScenarios { + [SetUp] + public void Setup() + { + ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute(); + } + [Test] [Category("NoMono")] [Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] diff --git a/src/GitVersionCore.Tests/JsonVersionBuilderTests.cs b/src/GitVersionCore.Tests/JsonVersionBuilderTests.cs index a900e2d130..72989d8a99 100644 --- a/src/GitVersionCore.Tests/JsonVersionBuilderTests.cs +++ b/src/GitVersionCore.Tests/JsonVersionBuilderTests.cs @@ -7,6 +7,12 @@ [TestFixture] public class JsonVersionBuilderTests { + [SetUp] + public void Setup() + { + ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute(); + } + [Test] [Category("NoMono")] [Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] diff --git a/src/GitVersionCore.Tests/VariableProviderTests.cs b/src/GitVersionCore.Tests/VariableProviderTests.cs index 7ae6e64eb3..cebf0d6862 100644 --- a/src/GitVersionCore.Tests/VariableProviderTests.cs +++ b/src/GitVersionCore.Tests/VariableProviderTests.cs @@ -7,6 +7,12 @@ [TestFixture] public class VariableProviderTests { + [SetUp] + public void Setup() + { + ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute(); + } + [Test] [Category("NoMono")] [Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] diff --git a/src/GitVersionCore/GitVersionCore.csproj b/src/GitVersionCore/GitVersionCore.csproj index 0fd85a6b3f..acebe812b1 100644 --- a/src/GitVersionCore/GitVersionCore.csproj +++ b/src/GitVersionCore/GitVersionCore.csproj @@ -119,6 +119,7 @@ + @@ -133,13 +134,13 @@ + + - - @@ -176,14 +177,24 @@ + + + + + + + + + + + + + + Designer - - - - Designer @@ -221,4 +232,4 @@ - \ No newline at end of file + diff --git a/src/GitVersionCore/GitVersionInformationResources/AddFormats/GitVersionInformation.cs b/src/GitVersionCore/GitVersionInformationResources/AddFormats/GitVersionInformation.cs new file mode 100644 index 0000000000..f63603f8c1 --- /dev/null +++ b/src/GitVersionCore/GitVersionInformationResources/AddFormats/GitVersionInformation.cs @@ -0,0 +1 @@ +public static string {0} = "{1}"; \ No newline at end of file diff --git a/src/GitVersionCore/GitVersionInformationResources/AddFormats/GitVersionInformation.fs b/src/GitVersionCore/GitVersionInformationResources/AddFormats/GitVersionInformation.fs new file mode 100644 index 0000000000..e4b33a1f92 --- /dev/null +++ b/src/GitVersionCore/GitVersionInformationResources/AddFormats/GitVersionInformation.fs @@ -0,0 +1 @@ +let {0} = "{1}" \ No newline at end of file diff --git a/src/GitVersionCore/GitVersionInformationResources/AddFormats/GitVersionInformation.vb b/src/GitVersionCore/GitVersionInformationResources/AddFormats/GitVersionInformation.vb new file mode 100644 index 0000000000..91f924711f --- /dev/null +++ b/src/GitVersionCore/GitVersionInformationResources/AddFormats/GitVersionInformation.vb @@ -0,0 +1 @@ +Public Shared {0} As String = "{1}" \ No newline at end of file diff --git a/src/GitVersionCore/GitVersionInformationResources/GitVersionInformationGenerator.cs b/src/GitVersionCore/GitVersionInformationResources/GitVersionInformationGenerator.cs new file mode 100644 index 0000000000..76e9fb11a1 --- /dev/null +++ b/src/GitVersionCore/GitVersionInformationResources/GitVersionInformationGenerator.cs @@ -0,0 +1,52 @@ +namespace GitVersion +{ + using System; + using System.IO; + using System.Linq; + using Helpers; + + public class GitVersionInformationGenerator + { + string fileName; + string directory; + VersionVariables variables; + IFileSystem fileSystem; + + TemplateManager templateManager; + + public GitVersionInformationGenerator(string fileName, string directory, VersionVariables variables, IFileSystem fileSystem) + { + this.fileName = fileName; + this.directory = directory; + this.variables = variables; + this.fileSystem = fileSystem; + + templateManager = new TemplateManager(TemplateType.GitVersionInformationResources); + } + + public void Generate() + { + var filePath = Path.Combine(directory, fileName); + + string originalFileContents = null; + + if (File.Exists(filePath)) + { + originalFileContents = fileSystem.ReadAllText(filePath); + } + + var fileExtension = Path.GetExtension(filePath); + var template = templateManager.GetTemplateFor(fileExtension); + var addFormat = templateManager.GetAddFormatFor(fileExtension); + + var members = string.Join(Environment.NewLine, variables.Select(v => string.Format(" " + addFormat, v.Key, v.Value))); + + var fileContents = string.Format(template, members); + + if (fileContents != originalFileContents) + { + fileSystem.WriteAllText(filePath, fileContents); + } + } + } +} diff --git a/src/GitVersionCore/GitVersionInformationResources/Templates/GitVersionInformation.cs b/src/GitVersionCore/GitVersionInformationResources/Templates/GitVersionInformation.cs new file mode 100644 index 0000000000..8648fe841f --- /dev/null +++ b/src/GitVersionCore/GitVersionInformationResources/Templates/GitVersionInformation.cs @@ -0,0 +1,15 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// GitVersion +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[global::System.Runtime.CompilerServices.CompilerGenerated] +static class GitVersionInformation +{{ +{0} +}} diff --git a/src/GitVersionCore/GitVersionInformationResources/Templates/GitVersionInformation.fs b/src/GitVersionCore/GitVersionInformationResources/Templates/GitVersionInformation.fs new file mode 100644 index 0000000000..f66bc9f990 --- /dev/null +++ b/src/GitVersionCore/GitVersionInformationResources/Templates/GitVersionInformation.fs @@ -0,0 +1,14 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// GitVersion +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[] +[] +module GitVersionInformation +{0} \ No newline at end of file diff --git a/src/GitVersionCore/GitVersionInformationResources/Templates/GitVersionInformation.vb b/src/GitVersionCore/GitVersionInformationResources/Templates/GitVersionInformation.vb new file mode 100644 index 0000000000..c0cd736115 --- /dev/null +++ b/src/GitVersionCore/GitVersionInformationResources/Templates/GitVersionInformation.vb @@ -0,0 +1,16 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' GitVersion +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + + +NotInheritable Class GitVersionInformation + Private Sub New() + End Sub +{0} +End Class \ No newline at end of file diff --git a/src/GitVersionCore/TemplateManager.cs b/src/GitVersionCore/TemplateManager.cs new file mode 100644 index 0000000000..4a1ff4ae6c --- /dev/null +++ b/src/GitVersionCore/TemplateManager.cs @@ -0,0 +1,83 @@ +namespace GitVersion +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using GitVersionCore.Extensions; + + enum TemplateType + { + VersionAssemblyInfoResources, + GitVersionInformationResources + } + + class TemplateManager + { + readonly Dictionary templates; + readonly Dictionary addFormats; + + public TemplateManager(TemplateType templateType) + { + templates = GetEmbeddedTemplates(templateType, "Templates").ToDictionary(k => Path.GetExtension(k), v => v, StringComparer.OrdinalIgnoreCase); + addFormats = GetEmbeddedTemplates(templateType, "AddFormats").ToDictionary(k => Path.GetExtension(k), v => v, StringComparer.OrdinalIgnoreCase); + } + + public string GetTemplateFor(string fileExtension) + { + if (fileExtension == null) + { + throw new ArgumentNullException(nameof(fileExtension)); + } + + string result = null; + string template; + + if (templates.TryGetValue(fileExtension, out template) && template != null) + { + result = template.ReadAsStringFromEmbeddedResource(); + } + + return result; + } + + public string GetAddFormatFor(string fileExtension) + { + if (fileExtension == null) + { + throw new ArgumentNullException(nameof(fileExtension)); + } + + string result = null; + string addFormat; + + if (addFormats.TryGetValue(fileExtension, out addFormat) && addFormat != null) + { + result = addFormat.ReadAsStringFromEmbeddedResource(); + } + + return result; + } + + public bool IsSupported(string fileExtension) + { + if (fileExtension == null) + { + throw new ArgumentNullException(nameof(fileExtension)); + } + + return templates.ContainsKey(fileExtension); + } + + static IEnumerable GetEmbeddedTemplates(TemplateType templateType, string templateCategory) + { + foreach (var name in typeof(TemplateManager).Assembly.GetManifestResourceNames()) + { + if (name.Contains(templateType.ToString()) && name.Contains(templateCategory)) + { + yield return name; + } + } + } + } +} diff --git a/src/GitVersionCore/VersionAssemblyInfoResources/AddFormats/VersionAssemblyInfo.cs b/src/GitVersionCore/VersionAssemblyInfoResources/AddFormats/VersionAssemblyInfo.cs new file mode 100644 index 0000000000..4857d5c2b8 --- /dev/null +++ b/src/GitVersionCore/VersionAssemblyInfoResources/AddFormats/VersionAssemblyInfo.cs @@ -0,0 +1 @@ +[assembly: {0}] \ No newline at end of file diff --git a/src/GitVersionCore/VersionAssemblyInfoResources/AddFormats/VersionAssemblyInfo.fs b/src/GitVersionCore/VersionAssemblyInfoResources/AddFormats/VersionAssemblyInfo.fs new file mode 100644 index 0000000000..502f32c86a --- /dev/null +++ b/src/GitVersionCore/VersionAssemblyInfoResources/AddFormats/VersionAssemblyInfo.fs @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/src/GitVersionCore/VersionAssemblyInfoResources/AddFormats/VersionAssemblyInfo.vb b/src/GitVersionCore/VersionAssemblyInfoResources/AddFormats/VersionAssemblyInfo.vb new file mode 100644 index 0000000000..d013c4c19f --- /dev/null +++ b/src/GitVersionCore/VersionAssemblyInfoResources/AddFormats/VersionAssemblyInfo.vb @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/GitVersionExe/AssemblyInfoFileUpdate.cs b/src/GitVersionCore/VersionAssemblyInfoResources/AssemblyInfoFileUpdater.cs similarity index 65% rename from src/GitVersionExe/AssemblyInfoFileUpdate.cs rename to src/GitVersionCore/VersionAssemblyInfoResources/AssemblyInfoFileUpdater.cs index 9914df5df8..5e1456ace1 100644 --- a/src/GitVersionExe/AssemblyInfoFileUpdate.cs +++ b/src/GitVersionCore/VersionAssemblyInfoResources/AssemblyInfoFileUpdater.cs @@ -6,30 +6,49 @@ namespace GitVersion using System.IO; using System.Linq; using System.Text.RegularExpressions; - using GitVersion.VersionAssemblyInfoResources; - // TODO: Consolidate this with GitVersionTask.UpdateAssemblyInfo. @asbjornu - class AssemblyInfoFileUpdate : IDisposable + public class AssemblyInfoFileUpdater : IDisposable { - List restoreBackupTasks = new List(); - List cleanupBackupTasks = new List(); + readonly List restoreBackupTasks = new List(); + readonly List cleanupBackupTasks = new List(); - public AssemblyInfoFileUpdate(Arguments args, string workingDirectory, VersionVariables variables, IFileSystem fileSystem) + ISet assemblyInfoFileNames; + string workingDirectory; + VersionVariables variables; + IFileSystem fileSystem; + bool ensureAssemblyInfo; + TemplateManager templateManager; + + public AssemblyInfoFileUpdater(string assemblyInfoFileName, string workingDirectory, VersionVariables variables, IFileSystem fileSystem, bool ensureAssemblyInfo) : + this(new HashSet { assemblyInfoFileName }, workingDirectory, variables, fileSystem, ensureAssemblyInfo) + { } + + public AssemblyInfoFileUpdater(ISet assemblyInfoFileNames, string workingDirectory, VersionVariables variables, IFileSystem fileSystem, bool ensureAssemblyInfo) { - if (!args.UpdateAssemblyInfo) return; + this.assemblyInfoFileNames = assemblyInfoFileNames; + this.workingDirectory = workingDirectory; + this.variables = variables; + this.fileSystem = fileSystem; + this.ensureAssemblyInfo = ensureAssemblyInfo; + + templateManager = new TemplateManager(TemplateType.VersionAssemblyInfoResources); + } - if (args.Output != OutputType.Json) - Logger.WriteInfo("Updating assembly info files"); + public void Update() + { + Logger.WriteInfo("Updating assembly info files"); - var assemblyInfoFiles = GetAssemblyInfoFiles(workingDirectory, args, fileSystem).ToList(); + var assemblyInfoFiles = GetAssemblyInfoFiles(workingDirectory, assemblyInfoFileNames, fileSystem, ensureAssemblyInfo).ToList(); Logger.WriteInfo($"Found {assemblyInfoFiles.Count} files"); var assemblyVersion = variables.AssemblySemVer; var assemblyVersionRegex = new Regex(@"AssemblyVersion(Attribute)?\s*\(.*\)\s*"); var assemblyVersionString = !string.IsNullOrWhiteSpace(assemblyVersion) ? $"AssemblyVersion(\"{assemblyVersion}\")" : null; + var assemblyInfoVersion = variables.InformationalVersion; var assemblyInfoVersionRegex = new Regex(@"AssemblyInformationalVersion(Attribute)?\s*\(.*\)\s*"); var assemblyInfoVersionString = $"AssemblyInformationalVersion(\"{assemblyInfoVersion}\")"; + var assemblyFileVersion = variables.AssemblySemFileVer; var assemblyFileVersionRegex = new Regex(@"AssemblyFileVersion(Attribute)?\s*\(.*\)\s*"); var assemblyFileVersionString = !string.IsNullOrWhiteSpace(assemblyFileVersion) ? $"AssemblyFileVersion(\"{assemblyFileVersion}\")" : null; @@ -39,25 +58,33 @@ public AssemblyInfoFileUpdate(Arguments args, string workingDirectory, VersionVa var backupAssemblyInfo = assemblyInfoFile.FullName + ".bak"; var localAssemblyInfo = assemblyInfoFile.FullName; fileSystem.Copy(assemblyInfoFile.FullName, backupAssemblyInfo, true); + restoreBackupTasks.Add(() => { if (fileSystem.Exists(localAssemblyInfo)) + { fileSystem.Delete(localAssemblyInfo); + } + fileSystem.Move(backupAssemblyInfo, localAssemblyInfo); }); + cleanupBackupTasks.Add(() => fileSystem.Delete(backupAssemblyInfo)); var originalFileContents = fileSystem.ReadAllText(assemblyInfoFile.FullName); var fileContents = originalFileContents; var appendedAttributes = false; + if (!string.IsNullOrWhiteSpace(assemblyVersion)) { fileContents = ReplaceOrAppend(assemblyVersionRegex, fileContents, assemblyVersionString, assemblyInfoFile.Extension, ref appendedAttributes); } + if (!string.IsNullOrWhiteSpace(assemblyFileVersion)) { fileContents = ReplaceOrAppend(assemblyFileVersionRegex, fileContents, assemblyFileVersionString, assemblyInfoFile.Extension, ref appendedAttributes); } + fileContents = ReplaceOrAppend(assemblyInfoVersionRegex, fileContents, assemblyInfoVersionString, assemblyInfoFile.Extension, ref appendedAttributes); if (appendedAttributes) @@ -65,6 +92,7 @@ public AssemblyInfoFileUpdate(Arguments args, string workingDirectory, VersionVa // If we appended any attributes, put a new line after them fileContents += Environment.NewLine; } + if (originalFileContents != fileContents) { fileSystem.WriteAllText(assemblyInfoFile.FullName, fileContents); @@ -72,9 +100,9 @@ public AssemblyInfoFileUpdate(Arguments args, string workingDirectory, VersionVa } } - static string ReplaceOrAppend(Regex replaceRegex, string inputString, string replaceString, string fileExtension, ref bool appendedAttributes) + string ReplaceOrAppend(Regex replaceRegex, string inputString, string replaceString, string fileExtension, ref bool appendedAttributes) { - var assemblyAddFormat = AssemblyVersionInfoTemplates.GetAssemblyInfoAddFormatFor(fileExtension); + var assemblyAddFormat = templateManager.GetAddFormatFor(fileExtension); if (replaceRegex.IsMatch(inputString)) { @@ -89,16 +117,15 @@ static string ReplaceOrAppend(Regex replaceRegex, string inputString, string rep return inputString; } - - static IEnumerable GetAssemblyInfoFiles(string workingDirectory, Arguments args, IFileSystem fileSystem) + IEnumerable GetAssemblyInfoFiles(string workingDirectory, ISet assemblyInfoFileNames, IFileSystem fileSystem, bool ensureAssemblyInfo) { - if (args.UpdateAssemblyInfoFileName != null && args.UpdateAssemblyInfoFileName.Any(x => !string.IsNullOrWhiteSpace(x))) + if (assemblyInfoFileNames != null && assemblyInfoFileNames.Any(x => !string.IsNullOrWhiteSpace(x))) { - foreach (var item in args.UpdateAssemblyInfoFileName) + foreach (var item in assemblyInfoFileNames) { var fullPath = Path.Combine(workingDirectory, item); - if (EnsureVersionAssemblyInfoFile(args, fileSystem, fullPath)) + if (EnsureVersionAssemblyInfoFile(ensureAssemblyInfo, fileSystem, fullPath)) { yield return new FileInfo(fullPath); } @@ -110,30 +137,42 @@ static IEnumerable GetAssemblyInfoFiles(string workingDirectory, Argum { var assemblyInfoFile = new FileInfo(item); - if (AssemblyVersionInfoTemplates.IsSupported(assemblyInfoFile.Extension)) + if (templateManager.IsSupported(assemblyInfoFile.Extension)) + { yield return assemblyInfoFile; + } } } } - static bool EnsureVersionAssemblyInfoFile(Arguments arguments, IFileSystem fileSystem, string fullPath) + bool EnsureVersionAssemblyInfoFile(bool ensureAssemblyInfo, IFileSystem fileSystem, string fullPath) { - if (fileSystem.Exists(fullPath)) return true; + if (fileSystem.Exists(fullPath)) + { + return true; + } - if (!arguments.EnsureAssemblyInfo) return false; + if (!ensureAssemblyInfo) + { + return false; + } + + var assemblyInfoSource = templateManager.GetTemplateFor(Path.GetExtension(fullPath)); - var assemblyInfoSource = AssemblyVersionInfoTemplates.GetAssemblyInfoTemplateFor(fullPath); if (!string.IsNullOrWhiteSpace(assemblyInfoSource)) { var fileInfo = new FileInfo(fullPath); + if (!fileSystem.DirectoryExists(fileInfo.Directory.FullName)) { fileSystem.CreateDirectory(fileInfo.Directory.FullName); } + fileSystem.WriteAllText(fullPath, assemblyInfoSource); return true; } - Logger.WriteWarning($"No version assembly info template available to create source file '{arguments.UpdateAssemblyInfoFileName}'"); + + Logger.WriteWarning($"No version assembly info template available to create source file '{fullPath}'"); return false; } @@ -148,12 +187,13 @@ public void Dispose() restoreBackupTasks.Clear(); } - public void DoNotRestoreAssemblyInfo() + public void CommitChanges() { foreach (var cleanupBackupTask in cleanupBackupTasks) { cleanupBackupTask(); } + cleanupBackupTasks.Clear(); restoreBackupTasks.Clear(); } diff --git a/src/GitVersionCore/VersionAssemblyInfoResources/AssemblyVersionInfoTemplates.cs b/src/GitVersionCore/VersionAssemblyInfoResources/AssemblyVersionInfoTemplates.cs deleted file mode 100644 index 36c8242b63..0000000000 --- a/src/GitVersionCore/VersionAssemblyInfoResources/AssemblyVersionInfoTemplates.cs +++ /dev/null @@ -1,74 +0,0 @@ -namespace GitVersion.VersionAssemblyInfoResources -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using GitVersionCore.Extensions; - - public class AssemblyVersionInfoTemplates - { - static readonly IDictionary assemblyInfoSourceList; - static readonly IDictionary assemblyInfoAddFormats; - - static AssemblyVersionInfoTemplates() - { - assemblyInfoSourceList = GetEmbeddedVersionAssemblyFiles().ToDictionary(k => k.Extension, v => v); - // TODO: It would be nice to do something a bit more clever here, like reusing the VersionAssemblyInfo.* templates somehow. @asbjornu - assemblyInfoAddFormats = new Dictionary - { - {".cs", "[assembly: {0}]"}, - {".vb", ""}, - {".fs", "[]"} - }; - } - - public static string GetAssemblyInfoTemplateFor(string assemblyInfoFile) - { - var fi = new FileInfo(assemblyInfoFile); - if (assemblyInfoSourceList.ContainsKey(fi.Extension)) - { - var template = assemblyInfoSourceList[fi.Extension]; - if (template != null) - { - return template.Name.ReadAsStringFromEmbeddedResource(); - } - } - return null; - } - - public static string GetAssemblyInfoAddFormatFor(string fileExtension) - { - if (fileExtension == null) - throw new ArgumentNullException("fileExtension"); - - string assemblyInfoAddFormat; - if (!assemblyInfoAddFormats.TryGetValue(fileExtension, out assemblyInfoAddFormat)) - throw new NotSupportedException(string.Format("Unknown file extension '{0}'.", fileExtension)); - - return assemblyInfoAddFormat; - } - - public static bool IsSupported(string fileExtension) - { - if (fileExtension == null) - throw new ArgumentNullException("fileExtension"); - - return assemblyInfoAddFormats.Keys.Contains(fileExtension, StringComparer.OrdinalIgnoreCase); - } - - private static IEnumerable GetEmbeddedVersionAssemblyFiles() - { - var enclosingNamespace = typeof(AssemblyVersionInfoTemplates).Namespace; - - if (enclosingNamespace == null) - throw new InvalidOperationException("The AssemblyVersionInfoTemplates class is missing its namespace."); - - foreach (var name in typeof(AssemblyVersionInfoTemplates).Assembly.GetManifestResourceNames()) - { - if (name.StartsWith(enclosingNamespace)) - yield return new FileInfo(name); - } - } - } -} \ No newline at end of file diff --git a/src/GitVersionCore/VersionAssemblyInfoResources/VersionAssemblyInfo.cs b/src/GitVersionCore/VersionAssemblyInfoResources/Templates/VersionAssemblyInfo.cs similarity index 100% rename from src/GitVersionCore/VersionAssemblyInfoResources/VersionAssemblyInfo.cs rename to src/GitVersionCore/VersionAssemblyInfoResources/Templates/VersionAssemblyInfo.cs diff --git a/src/GitVersionCore/VersionAssemblyInfoResources/VersionAssemblyInfo.fs b/src/GitVersionCore/VersionAssemblyInfoResources/Templates/VersionAssemblyInfo.fs similarity index 93% rename from src/GitVersionCore/VersionAssemblyInfoResources/VersionAssemblyInfo.fs rename to src/GitVersionCore/VersionAssemblyInfoResources/Templates/VersionAssemblyInfo.fs index e29db48538..648d9b3f29 100644 --- a/src/GitVersionCore/VersionAssemblyInfoResources/VersionAssemblyInfo.fs +++ b/src/GitVersionCore/VersionAssemblyInfoResources/Templates/VersionAssemblyInfo.fs @@ -5,6 +5,7 @@ // You can modify this code as we will not overwrite it when re-executing GitVersion // //------------------------------------------------------------------------------ +namespace GitVersionAssemblyInfoFile open System.Reflection diff --git a/src/GitVersionCore/VersionAssemblyInfoResources/VersionAssemblyInfo.vb b/src/GitVersionCore/VersionAssemblyInfoResources/Templates/VersionAssemblyInfo.vb similarity index 73% rename from src/GitVersionCore/VersionAssemblyInfoResources/VersionAssemblyInfo.vb rename to src/GitVersionCore/VersionAssemblyInfoResources/Templates/VersionAssemblyInfo.vb index 7449bea5c3..4c511298b0 100644 --- a/src/GitVersionCore/VersionAssemblyInfoResources/VersionAssemblyInfo.vb +++ b/src/GitVersionCore/VersionAssemblyInfoResources/Templates/VersionAssemblyInfo.vb @@ -8,6 +8,6 @@ Imports System.Reflection - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt b/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt deleted file mode 100644 index db4291da64..0000000000 --- a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt b/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt deleted file mode 100644 index db4291da64..0000000000 --- a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/GitVersionExe.Tests/GitVersionExe.Tests.csproj b/src/GitVersionExe.Tests/GitVersionExe.Tests.csproj index 0de79326e5..35845d9e0f 100644 --- a/src/GitVersionExe.Tests/GitVersionExe.Tests.csproj +++ b/src/GitVersionExe.Tests/GitVersionExe.Tests.csproj @@ -116,26 +116,11 @@ - - - - - - - - - - - - - - - diff --git a/src/GitVersionExe/GitVersionExe.csproj b/src/GitVersionExe/GitVersionExe.csproj index e862fb08f5..1e6850f761 100644 --- a/src/GitVersionExe/GitVersionExe.csproj +++ b/src/GitVersionExe/GitVersionExe.csproj @@ -62,7 +62,6 @@ - diff --git a/src/GitVersionExe/SpecifiedArgumentRunner.cs b/src/GitVersionExe/SpecifiedArgumentRunner.cs index 0516d0891c..2f585fef62 100644 --- a/src/GitVersionExe/SpecifiedArgumentRunner.cs +++ b/src/GitVersionExe/SpecifiedArgumentRunner.cs @@ -56,13 +56,18 @@ public static void Run(Arguments arguments, IFileSystem fileSystem) } } - using (var assemblyInfoUpdate = new AssemblyInfoFileUpdate(arguments, targetPath, variables, fileSystem)) + using (var assemblyInfoUpdater = new AssemblyInfoFileUpdater(arguments.UpdateAssemblyInfoFileName, targetPath, variables, fileSystem, arguments.EnsureAssemblyInfo)) { + if (arguments.UpdateAssemblyInfo) + { + assemblyInfoUpdater.Update(); + } + var execRun = RunExecCommandIfNeeded(arguments, targetPath, variables); var msbuildRun = RunMsBuildIfNeeded(arguments, targetPath, variables); if (!execRun && !msbuildRun) { - assemblyInfoUpdate.DoNotRestoreAssemblyInfo(); + assemblyInfoUpdater.CommitChanges(); //TODO Put warning back //if (!context.CurrentBuildServer.IsRunningInBuildAgent()) //{ diff --git a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major.approved.txt b/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major.approved.txt deleted file mode 100644 index 5ee1497a23..0000000000 --- a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major.approved.txt +++ /dev/null @@ -1,53 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion("2.0.0.0")] -[assembly: AssemblyFileVersion("2.3.4.0")] -[assembly: AssemblyInformationalVersion("2.3.4-beta.5+6.Branch.master.Sha.commitSha")] - -namespace Fake -{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - { - public static string Major = "2"; - public static string Minor = "3"; - public static string Patch = "4"; - public static string PreReleaseTag = "beta.5"; - public static string PreReleaseTagWithDash = "-beta.5"; - public static string PreReleaseLabel = "beta"; - public static string PreReleaseNumber = "5"; - public static string BuildMetaData = "6"; - public static string BuildMetaDataPadded = "0006"; - public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha"; - public static string MajorMinorPatch = "2.3.4"; - public static string SemVer = "2.3.4-beta.5"; - public static string LegacySemVer = "2.3.4-beta5"; - public static string LegacySemVerPadded = "2.3.4-beta0005"; - public static string AssemblySemVer = "2.0.0.0"; - public static string AssemblySemFileVer = "2.3.4.0"; - public static string FullSemVer = "2.3.4-beta.5+6"; - public static string InformationalVersion = "2.3.4-beta.5+6.Branch.master.Sha.commitSha"; - public static string BranchName = "master"; - public static string Sha = "commitSha"; - public static string NuGetVersionV2 = "2.3.4-beta0005"; - public static string NuGetVersion = "2.3.4-beta0005"; - public static string NuGetPreReleaseTagV2 = "beta0005"; - public static string NuGetPreReleaseTag = "beta0005"; - public static string CommitsSinceVersionSource = "6"; - public static string CommitsSinceVersionSourcePadded = "0006"; - public static string CommitDate = "2014-03-06"; - } - -} diff --git a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor.approved.txt b/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor.approved.txt deleted file mode 100644 index 9b1da35f6d..0000000000 --- a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor.approved.txt +++ /dev/null @@ -1,53 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion("2.3.0.0")] -[assembly: AssemblyFileVersion("2.3.4.0")] -[assembly: AssemblyInformationalVersion("2.3.4-beta.5+6.Branch.master.Sha.commitSha")] - -namespace Fake -{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - { - public static string Major = "2"; - public static string Minor = "3"; - public static string Patch = "4"; - public static string PreReleaseTag = "beta.5"; - public static string PreReleaseTagWithDash = "-beta.5"; - public static string PreReleaseLabel = "beta"; - public static string PreReleaseNumber = "5"; - public static string BuildMetaData = "6"; - public static string BuildMetaDataPadded = "0006"; - public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha"; - public static string MajorMinorPatch = "2.3.4"; - public static string SemVer = "2.3.4-beta.5"; - public static string LegacySemVer = "2.3.4-beta5"; - public static string LegacySemVerPadded = "2.3.4-beta0005"; - public static string AssemblySemVer = "2.3.0.0"; - public static string AssemblySemFileVer = "2.3.4.0"; - public static string FullSemVer = "2.3.4-beta.5+6"; - public static string InformationalVersion = "2.3.4-beta.5+6.Branch.master.Sha.commitSha"; - public static string BranchName = "master"; - public static string Sha = "commitSha"; - public static string NuGetVersionV2 = "2.3.4-beta0005"; - public static string NuGetVersion = "2.3.4-beta0005"; - public static string NuGetPreReleaseTagV2 = "beta0005"; - public static string NuGetPreReleaseTag = "beta0005"; - public static string CommitsSinceVersionSource = "6"; - public static string CommitsSinceVersionSourcePadded = "0006"; - public static string CommitDate = "2014-03-06"; - } - -} diff --git a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch.approved.txt b/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch.approved.txt deleted file mode 100644 index 6958d82972..0000000000 --- a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch.approved.txt +++ /dev/null @@ -1,53 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion("2.3.4.0")] -[assembly: AssemblyFileVersion("2.3.4.0")] -[assembly: AssemblyInformationalVersion("2.3.4-beta.5+6.Branch.master.Sha.commitSha")] - -namespace Fake -{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - { - public static string Major = "2"; - public static string Minor = "3"; - public static string Patch = "4"; - public static string PreReleaseTag = "beta.5"; - public static string PreReleaseTagWithDash = "-beta.5"; - public static string PreReleaseLabel = "beta"; - public static string PreReleaseNumber = "5"; - public static string BuildMetaData = "6"; - public static string BuildMetaDataPadded = "0006"; - public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha"; - public static string MajorMinorPatch = "2.3.4"; - public static string SemVer = "2.3.4-beta.5"; - public static string LegacySemVer = "2.3.4-beta5"; - public static string LegacySemVerPadded = "2.3.4-beta0005"; - public static string AssemblySemVer = "2.3.4.0"; - public static string AssemblySemFileVer = "2.3.4.0"; - public static string FullSemVer = "2.3.4-beta.5+6"; - public static string InformationalVersion = "2.3.4-beta.5+6.Branch.master.Sha.commitSha"; - public static string BranchName = "master"; - public static string Sha = "commitSha"; - public static string NuGetVersionV2 = "2.3.4-beta0005"; - public static string NuGetVersion = "2.3.4-beta0005"; - public static string NuGetPreReleaseTagV2 = "beta0005"; - public static string NuGetPreReleaseTag = "beta0005"; - public static string CommitsSinceVersionSource = "6"; - public static string CommitsSinceVersionSourcePadded = "0006"; - public static string CommitDate = "2014-03-06"; - } - -} diff --git a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag.approved.txt b/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag.approved.txt deleted file mode 100644 index 58a3423c5d..0000000000 --- a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag.approved.txt +++ /dev/null @@ -1,53 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion("2.3.4.5")] -[assembly: AssemblyFileVersion("2.3.4.0")] -[assembly: AssemblyInformationalVersion("2.3.4-beta.5+6.Branch.master.Sha.commitSha")] - -namespace Fake -{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - { - public static string Major = "2"; - public static string Minor = "3"; - public static string Patch = "4"; - public static string PreReleaseTag = "beta.5"; - public static string PreReleaseTagWithDash = "-beta.5"; - public static string PreReleaseLabel = "beta"; - public static string PreReleaseNumber = "5"; - public static string BuildMetaData = "6"; - public static string BuildMetaDataPadded = "0006"; - public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha"; - public static string MajorMinorPatch = "2.3.4"; - public static string SemVer = "2.3.4-beta.5"; - public static string LegacySemVer = "2.3.4-beta5"; - public static string LegacySemVerPadded = "2.3.4-beta0005"; - public static string AssemblySemVer = "2.3.4.5"; - public static string AssemblySemFileVer = "2.3.4.0"; - public static string FullSemVer = "2.3.4-beta.5+6"; - public static string InformationalVersion = "2.3.4-beta.5+6.Branch.master.Sha.commitSha"; - public static string BranchName = "master"; - public static string Sha = "commitSha"; - public static string NuGetVersionV2 = "2.3.4-beta0005"; - public static string NuGetVersion = "2.3.4-beta0005"; - public static string NuGetPreReleaseTagV2 = "beta0005"; - public static string NuGetPreReleaseTag = "beta0005"; - public static string CommitsSinceVersionSource = "6"; - public static string CommitsSinceVersionSourcePadded = "0006"; - public static string CommitDate = "2014-03-06"; - } - -} diff --git a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag_NugetAssemblyInfo.approved.txt b/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag_NugetAssemblyInfo.approved.txt deleted file mode 100644 index 06fb222279..0000000000 --- a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag_NugetAssemblyInfo.approved.txt +++ /dev/null @@ -1,53 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion("2.3.4.5")] -[assembly: AssemblyFileVersion("2.3.4.0")] -[assembly: AssemblyInformationalVersion("2.3.4-beta0005")] - -namespace Fake -{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - { - public static string Major = "2"; - public static string Minor = "3"; - public static string Patch = "4"; - public static string PreReleaseTag = "beta.5"; - public static string PreReleaseTagWithDash = "-beta.5"; - public static string PreReleaseLabel = "beta"; - public static string PreReleaseNumber = "5"; - public static string BuildMetaData = "6"; - public static string BuildMetaDataPadded = "0006"; - public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha"; - public static string MajorMinorPatch = "2.3.4"; - public static string SemVer = "2.3.4-beta.5"; - public static string LegacySemVer = "2.3.4-beta5"; - public static string LegacySemVerPadded = "2.3.4-beta0005"; - public static string AssemblySemVer = "2.3.4.5"; - public static string AssemblySemFileVer = "2.3.4.0"; - public static string FullSemVer = "2.3.4-beta.5+6"; - public static string InformationalVersion = "2.3.4-beta0005"; - public static string BranchName = "master"; - public static string Sha = "commitSha"; - public static string NuGetVersionV2 = "2.3.4-beta0005"; - public static string NuGetVersion = "2.3.4-beta0005"; - public static string NuGetPreReleaseTagV2 = "beta0005"; - public static string NuGetPreReleaseTag = "beta0005"; - public static string CommitsSinceVersionSource = "6"; - public static string CommitsSinceVersionSourcePadded = "0006"; - public static string CommitDate = "2014-03-06"; - } - -} diff --git a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch_NugetAssemblyInfo.approved.txt b/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch_NugetAssemblyInfo.approved.txt deleted file mode 100644 index db88ab0cbb..0000000000 --- a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch_NugetAssemblyInfo.approved.txt +++ /dev/null @@ -1,53 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion("2.3.4.0")] -[assembly: AssemblyFileVersion("2.3.4.0")] -[assembly: AssemblyInformationalVersion("2.3.4-beta0005")] - -namespace Fake -{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - { - public static string Major = "2"; - public static string Minor = "3"; - public static string Patch = "4"; - public static string PreReleaseTag = "beta.5"; - public static string PreReleaseTagWithDash = "-beta.5"; - public static string PreReleaseLabel = "beta"; - public static string PreReleaseNumber = "5"; - public static string BuildMetaData = "6"; - public static string BuildMetaDataPadded = "0006"; - public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha"; - public static string MajorMinorPatch = "2.3.4"; - public static string SemVer = "2.3.4-beta.5"; - public static string LegacySemVer = "2.3.4-beta5"; - public static string LegacySemVerPadded = "2.3.4-beta0005"; - public static string AssemblySemVer = "2.3.4.0"; - public static string AssemblySemFileVer = "2.3.4.0"; - public static string FullSemVer = "2.3.4-beta.5+6"; - public static string InformationalVersion = "2.3.4-beta0005"; - public static string BranchName = "master"; - public static string Sha = "commitSha"; - public static string NuGetVersionV2 = "2.3.4-beta0005"; - public static string NuGetVersion = "2.3.4-beta0005"; - public static string NuGetPreReleaseTagV2 = "beta0005"; - public static string NuGetPreReleaseTag = "beta0005"; - public static string CommitsSinceVersionSource = "6"; - public static string CommitsSinceVersionSourcePadded = "0006"; - public static string CommitDate = "2014-03-06"; - } - -} diff --git a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfo.approved.txt b/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfo.approved.txt deleted file mode 100644 index c33258c7cd..0000000000 --- a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfo.approved.txt +++ /dev/null @@ -1,53 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion("2.3.0.0")] -[assembly: AssemblyFileVersion("2.3.4.0")] -[assembly: AssemblyInformationalVersion("2.3.4-beta0005")] - -namespace Fake -{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - { - public static string Major = "2"; - public static string Minor = "3"; - public static string Patch = "4"; - public static string PreReleaseTag = "beta.5"; - public static string PreReleaseTagWithDash = "-beta.5"; - public static string PreReleaseLabel = "beta"; - public static string PreReleaseNumber = "5"; - public static string BuildMetaData = "6"; - public static string BuildMetaDataPadded = "0006"; - public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha"; - public static string MajorMinorPatch = "2.3.4"; - public static string SemVer = "2.3.4-beta.5"; - public static string LegacySemVer = "2.3.4-beta5"; - public static string LegacySemVerPadded = "2.3.4-beta0005"; - public static string AssemblySemVer = "2.3.0.0"; - public static string AssemblySemFileVer = "2.3.4.0"; - public static string FullSemVer = "2.3.4-beta.5+6"; - public static string InformationalVersion = "2.3.4-beta0005"; - public static string BranchName = "master"; - public static string Sha = "commitSha"; - public static string NuGetVersionV2 = "2.3.4-beta0005"; - public static string NuGetVersion = "2.3.4-beta0005"; - public static string NuGetPreReleaseTagV2 = "beta0005"; - public static string NuGetPreReleaseTag = "beta0005"; - public static string CommitsSinceVersionSource = "6"; - public static string CommitsSinceVersionSourcePadded = "0006"; - public static string CommitDate = "2014-03-06"; - } - -} diff --git a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfoWithMultipleVariables.approved.txt b/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfoWithMultipleVariables.approved.txt deleted file mode 100644 index 631ffa483f..0000000000 --- a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfoWithMultipleVariables.approved.txt +++ /dev/null @@ -1,53 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion("2.3.0.0")] -[assembly: AssemblyFileVersion("2.3.4.0")] -[assembly: AssemblyInformationalVersion("master-2.3.4-commitSha")] - -namespace Fake -{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - { - public static string Major = "2"; - public static string Minor = "3"; - public static string Patch = "4"; - public static string PreReleaseTag = "beta.5"; - public static string PreReleaseTagWithDash = "-beta.5"; - public static string PreReleaseLabel = "beta"; - public static string PreReleaseNumber = "5"; - public static string BuildMetaData = "6"; - public static string BuildMetaDataPadded = "0006"; - public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha"; - public static string MajorMinorPatch = "2.3.4"; - public static string SemVer = "2.3.4-beta.5"; - public static string LegacySemVer = "2.3.4-beta5"; - public static string LegacySemVerPadded = "2.3.4-beta0005"; - public static string AssemblySemVer = "2.3.0.0"; - public static string AssemblySemFileVer = "2.3.4.0"; - public static string FullSemVer = "2.3.4-beta.5+6"; - public static string InformationalVersion = "master-2.3.4-commitSha"; - public static string BranchName = "master"; - public static string Sha = "commitSha"; - public static string NuGetVersionV2 = "2.3.4-beta0005"; - public static string NuGetVersion = "2.3.4-beta0005"; - public static string NuGetPreReleaseTagV2 = "beta0005"; - public static string NuGetPreReleaseTag = "beta0005"; - public static string CommitsSinceVersionSource = "6"; - public static string CommitsSinceVersionSourcePadded = "0006"; - public static string CommitDate = "2014-03-06"; - } - -} diff --git a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major_NugetAssemblyInfo.approved.txt b/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major_NugetAssemblyInfo.approved.txt deleted file mode 100644 index 95f0f5567d..0000000000 --- a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major_NugetAssemblyInfo.approved.txt +++ /dev/null @@ -1,53 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion("2.0.0.0")] -[assembly: AssemblyFileVersion("2.3.4.0")] -[assembly: AssemblyInformationalVersion("2.3.4-beta0005")] - -namespace Fake -{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - { - public static string Major = "2"; - public static string Minor = "3"; - public static string Patch = "4"; - public static string PreReleaseTag = "beta.5"; - public static string PreReleaseTagWithDash = "-beta.5"; - public static string PreReleaseLabel = "beta"; - public static string PreReleaseNumber = "5"; - public static string BuildMetaData = "6"; - public static string BuildMetaDataPadded = "0006"; - public static string FullBuildMetaData = "6.Branch.master.Sha.commitSha"; - public static string MajorMinorPatch = "2.3.4"; - public static string SemVer = "2.3.4-beta.5"; - public static string LegacySemVer = "2.3.4-beta5"; - public static string LegacySemVerPadded = "2.3.4-beta0005"; - public static string AssemblySemVer = "2.0.0.0"; - public static string AssemblySemFileVer = "2.3.4.0"; - public static string FullSemVer = "2.3.4-beta.5+6"; - public static string InformationalVersion = "2.3.4-beta0005"; - public static string BranchName = "master"; - public static string Sha = "commitSha"; - public static string NuGetVersionV2 = "2.3.4-beta0005"; - public static string NuGetVersion = "2.3.4-beta0005"; - public static string NuGetPreReleaseTagV2 = "beta0005"; - public static string NuGetPreReleaseTag = "beta0005"; - public static string CommitsSinceVersionSource = "6"; - public static string CommitsSinceVersionSourcePadded = "0006"; - public static string CommitDate = "2014-03-06"; - } - -} diff --git a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyCreatedCode.approved.txt b/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyCreatedCode.approved.txt deleted file mode 100644 index b41f45e9d4..0000000000 --- a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyCreatedCode.approved.txt +++ /dev/null @@ -1,53 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion("1.2.3.0")] -[assembly: AssemblyFileVersion("1.2.3.0")] -[assembly: AssemblyInformationalVersion("1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha")] - -namespace Fake -{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - { - public static string Major = "1"; - public static string Minor = "2"; - public static string Patch = "3"; - public static string PreReleaseTag = "unstable.4"; - public static string PreReleaseTagWithDash = "-unstable.4"; - public static string PreReleaseLabel = "unstable"; - public static string PreReleaseNumber = "4"; - public static string BuildMetaData = "5"; - public static string BuildMetaDataPadded = "0005"; - public static string FullBuildMetaData = "5.Branch.feature1.Sha.commitSha"; - public static string MajorMinorPatch = "1.2.3"; - public static string SemVer = "1.2.3-unstable.4"; - public static string LegacySemVer = "1.2.3-unstable4"; - public static string LegacySemVerPadded = "1.2.3-unstable0004"; - public static string AssemblySemVer = "1.2.3.0"; - public static string AssemblySemFileVer = "1.2.3.0"; - public static string FullSemVer = "1.2.3-unstable.4+5"; - public static string InformationalVersion = "1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha"; - public static string BranchName = "feature1"; - public static string Sha = "commitSha"; - public static string NuGetVersionV2 = "1.2.3-unstable0004"; - public static string NuGetVersion = "1.2.3-unstable0004"; - public static string NuGetPreReleaseTagV2 = "unstable0004"; - public static string NuGetPreReleaseTag = "unstable0004"; - public static string CommitsSinceVersionSource = "5"; - public static string CommitsSinceVersionSourcePadded = "0005"; - public static string CommitDate = "2014-03-06"; - } - -} diff --git a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyCreatedCode_NoNamespaceConflict.approved.txt b/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyCreatedCode_NoNamespaceConflict.approved.txt deleted file mode 100644 index 57896a8c89..0000000000 --- a/src/GitVersionTask.Tests/Approved/CSharp/AssemblyInfoBuilderTests.VerifyCreatedCode_NoNamespaceConflict.approved.txt +++ /dev/null @@ -1,53 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion("1.2.3.0")] -[assembly: AssemblyFileVersion("1.2.3.0")] -[assembly: AssemblyInformationalVersion("1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha")] - -namespace Fake.System -{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - { - public static string Major = "1"; - public static string Minor = "2"; - public static string Patch = "3"; - public static string PreReleaseTag = "unstable.4"; - public static string PreReleaseTagWithDash = "-unstable.4"; - public static string PreReleaseLabel = "unstable"; - public static string PreReleaseNumber = "4"; - public static string BuildMetaData = "5"; - public static string BuildMetaDataPadded = "0005"; - public static string FullBuildMetaData = "5.Branch.feature1.Sha.commitSha"; - public static string MajorMinorPatch = "1.2.3"; - public static string SemVer = "1.2.3-unstable.4"; - public static string LegacySemVer = "1.2.3-unstable4"; - public static string LegacySemVerPadded = "1.2.3-unstable0004"; - public static string AssemblySemVer = "1.2.3.0"; - public static string AssemblySemFileVer = "1.2.3.0"; - public static string FullSemVer = "1.2.3-unstable.4+5"; - public static string InformationalVersion = "1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha"; - public static string BranchName = "feature1"; - public static string Sha = "commitSha"; - public static string NuGetVersionV2 = "1.2.3-unstable0004"; - public static string NuGetVersion = "1.2.3-unstable0004"; - public static string NuGetPreReleaseTagV2 = "unstable0004"; - public static string NuGetPreReleaseTag = "unstable0004"; - public static string CommitsSinceVersionSource = "5"; - public static string CommitsSinceVersionSourcePadded = "0005"; - public static string CommitDate = "2014-03-06"; - } - -} diff --git a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major.approved.txt b/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major.approved.txt deleted file mode 100644 index af764ff027..0000000000 --- a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major.approved.txt +++ /dev/null @@ -1,49 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub - Public Shared Major As String = "2" - Public Shared Minor As String = "3" - Public Shared Patch As String = "4" - Public Shared PreReleaseTag As String = "beta.5" - Public Shared PreReleaseTagWithDash As String = "-beta.5" - Public Shared PreReleaseLabel As String = "beta" - Public Shared PreReleaseNumber As String = "5" - Public Shared BuildMetaData As String = "6" - Public Shared BuildMetaDataPadded As String = "0006" - Public Shared FullBuildMetaData As String = "6.Branch.master.Sha.commitSha" - Public Shared MajorMinorPatch As String = "2.3.4" - Public Shared SemVer As String = "2.3.4-beta.5" - Public Shared LegacySemVer As String = "2.3.4-beta5" - Public Shared LegacySemVerPadded As String = "2.3.4-beta0005" - Public Shared AssemblySemVer As String = "2.0.0.0" - Public Shared AssemblySemFileVer As String = "2.3.4.0" - Public Shared FullSemVer As String = "2.3.4-beta.5+6" - Public Shared InformationalVersion As String = "2.3.4-beta.5+6.Branch.master.Sha.commitSha" - Public Shared BranchName As String = "master" - Public Shared Sha As String = "commitSha" - Public Shared NuGetVersionV2 As String = "2.3.4-beta0005" - Public Shared NuGetVersion As String = "2.3.4-beta0005" - Public Shared NuGetPreReleaseTagV2 As String = "beta0005" - Public Shared NuGetPreReleaseTag As String = "beta0005" - Public Shared CommitsSinceVersionSource As String = "6" - Public Shared CommitsSinceVersionSourcePadded As String = "0006" - Public Shared CommitDate As String = "2014-03-06" -End Class diff --git a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor.approved.txt b/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor.approved.txt deleted file mode 100644 index c9a5a3f14e..0000000000 --- a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor.approved.txt +++ /dev/null @@ -1,49 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub - Public Shared Major As String = "2" - Public Shared Minor As String = "3" - Public Shared Patch As String = "4" - Public Shared PreReleaseTag As String = "beta.5" - Public Shared PreReleaseTagWithDash As String = "-beta.5" - Public Shared PreReleaseLabel As String = "beta" - Public Shared PreReleaseNumber As String = "5" - Public Shared BuildMetaData As String = "6" - Public Shared BuildMetaDataPadded As String = "0006" - Public Shared FullBuildMetaData As String = "6.Branch.master.Sha.commitSha" - Public Shared MajorMinorPatch As String = "2.3.4" - Public Shared SemVer As String = "2.3.4-beta.5" - Public Shared LegacySemVer As String = "2.3.4-beta5" - Public Shared LegacySemVerPadded As String = "2.3.4-beta0005" - Public Shared AssemblySemVer As String = "2.3.0.0" - Public Shared AssemblySemFileVer As String = "2.3.4.0" - Public Shared FullSemVer As String = "2.3.4-beta.5+6" - Public Shared InformationalVersion As String = "2.3.4-beta.5+6.Branch.master.Sha.commitSha" - Public Shared BranchName As String = "master" - Public Shared Sha As String = "commitSha" - Public Shared NuGetVersionV2 As String = "2.3.4-beta0005" - Public Shared NuGetVersion As String = "2.3.4-beta0005" - Public Shared NuGetPreReleaseTagV2 As String = "beta0005" - Public Shared NuGetPreReleaseTag As String = "beta0005" - Public Shared CommitsSinceVersionSource As String = "6" - Public Shared CommitsSinceVersionSourcePadded As String = "0006" - Public Shared CommitDate As String = "2014-03-06" -End Class diff --git a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch.approved.txt b/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch.approved.txt deleted file mode 100644 index b73093cc3b..0000000000 --- a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch.approved.txt +++ /dev/null @@ -1,49 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub - Public Shared Major As String = "2" - Public Shared Minor As String = "3" - Public Shared Patch As String = "4" - Public Shared PreReleaseTag As String = "beta.5" - Public Shared PreReleaseTagWithDash As String = "-beta.5" - Public Shared PreReleaseLabel As String = "beta" - Public Shared PreReleaseNumber As String = "5" - Public Shared BuildMetaData As String = "6" - Public Shared BuildMetaDataPadded As String = "0006" - Public Shared FullBuildMetaData As String = "6.Branch.master.Sha.commitSha" - Public Shared MajorMinorPatch As String = "2.3.4" - Public Shared SemVer As String = "2.3.4-beta.5" - Public Shared LegacySemVer As String = "2.3.4-beta5" - Public Shared LegacySemVerPadded As String = "2.3.4-beta0005" - Public Shared AssemblySemVer As String = "2.3.4.0" - Public Shared AssemblySemFileVer As String = "2.3.4.0" - Public Shared FullSemVer As String = "2.3.4-beta.5+6" - Public Shared InformationalVersion As String = "2.3.4-beta.5+6.Branch.master.Sha.commitSha" - Public Shared BranchName As String = "master" - Public Shared Sha As String = "commitSha" - Public Shared NuGetVersionV2 As String = "2.3.4-beta0005" - Public Shared NuGetVersion As String = "2.3.4-beta0005" - Public Shared NuGetPreReleaseTagV2 As String = "beta0005" - Public Shared NuGetPreReleaseTag As String = "beta0005" - Public Shared CommitsSinceVersionSource As String = "6" - Public Shared CommitsSinceVersionSourcePadded As String = "0006" - Public Shared CommitDate As String = "2014-03-06" -End Class diff --git a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag.approved.txt b/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag.approved.txt deleted file mode 100644 index 4611402968..0000000000 --- a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag.approved.txt +++ /dev/null @@ -1,49 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub - Public Shared Major As String = "2" - Public Shared Minor As String = "3" - Public Shared Patch As String = "4" - Public Shared PreReleaseTag As String = "beta.5" - Public Shared PreReleaseTagWithDash As String = "-beta.5" - Public Shared PreReleaseLabel As String = "beta" - Public Shared PreReleaseNumber As String = "5" - Public Shared BuildMetaData As String = "6" - Public Shared BuildMetaDataPadded As String = "0006" - Public Shared FullBuildMetaData As String = "6.Branch.master.Sha.commitSha" - Public Shared MajorMinorPatch As String = "2.3.4" - Public Shared SemVer As String = "2.3.4-beta.5" - Public Shared LegacySemVer As String = "2.3.4-beta5" - Public Shared LegacySemVerPadded As String = "2.3.4-beta0005" - Public Shared AssemblySemVer As String = "2.3.4.5" - Public Shared AssemblySemFileVer As String = "2.3.4.0" - Public Shared FullSemVer As String = "2.3.4-beta.5+6" - Public Shared InformationalVersion As String = "2.3.4-beta.5+6.Branch.master.Sha.commitSha" - Public Shared BranchName As String = "master" - Public Shared Sha As String = "commitSha" - Public Shared NuGetVersionV2 As String = "2.3.4-beta0005" - Public Shared NuGetVersion As String = "2.3.4-beta0005" - Public Shared NuGetPreReleaseTagV2 As String = "beta0005" - Public Shared NuGetPreReleaseTag As String = "beta0005" - Public Shared CommitsSinceVersionSource As String = "6" - Public Shared CommitsSinceVersionSourcePadded As String = "0006" - Public Shared CommitDate As String = "2014-03-06" -End Class diff --git a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag_NugetAssemblyInfo.approved.txt b/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag_NugetAssemblyInfo.approved.txt deleted file mode 100644 index 8835f12462..0000000000 --- a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatchTag_NugetAssemblyInfo.approved.txt +++ /dev/null @@ -1,49 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub - Public Shared Major As String = "2" - Public Shared Minor As String = "3" - Public Shared Patch As String = "4" - Public Shared PreReleaseTag As String = "beta.5" - Public Shared PreReleaseTagWithDash As String = "-beta.5" - Public Shared PreReleaseLabel As String = "beta" - Public Shared PreReleaseNumber As String = "5" - Public Shared BuildMetaData As String = "6" - Public Shared BuildMetaDataPadded As String = "0006" - Public Shared FullBuildMetaData As String = "6.Branch.master.Sha.commitSha" - Public Shared MajorMinorPatch As String = "2.3.4" - Public Shared SemVer As String = "2.3.4-beta.5" - Public Shared LegacySemVer As String = "2.3.4-beta5" - Public Shared LegacySemVerPadded As String = "2.3.4-beta0005" - Public Shared AssemblySemVer As String = "2.3.4.5" - Public Shared AssemblySemFileVer As String = "2.3.4.0" - Public Shared FullSemVer As String = "2.3.4-beta.5+6" - Public Shared InformationalVersion As String = "2.3.4-beta0005" - Public Shared BranchName As String = "master" - Public Shared Sha As String = "commitSha" - Public Shared NuGetVersionV2 As String = "2.3.4-beta0005" - Public Shared NuGetVersion As String = "2.3.4-beta0005" - Public Shared NuGetPreReleaseTagV2 As String = "beta0005" - Public Shared NuGetPreReleaseTag As String = "beta0005" - Public Shared CommitsSinceVersionSource As String = "6" - Public Shared CommitsSinceVersionSourcePadded As String = "0006" - Public Shared CommitDate As String = "2014-03-06" -End Class diff --git a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch_NugetAssemblyInfo.approved.txt b/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch_NugetAssemblyInfo.approved.txt deleted file mode 100644 index 5830062927..0000000000 --- a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinorPatch_NugetAssemblyInfo.approved.txt +++ /dev/null @@ -1,49 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub - Public Shared Major As String = "2" - Public Shared Minor As String = "3" - Public Shared Patch As String = "4" - Public Shared PreReleaseTag As String = "beta.5" - Public Shared PreReleaseTagWithDash As String = "-beta.5" - Public Shared PreReleaseLabel As String = "beta" - Public Shared PreReleaseNumber As String = "5" - Public Shared BuildMetaData As String = "6" - Public Shared BuildMetaDataPadded As String = "0006" - Public Shared FullBuildMetaData As String = "6.Branch.master.Sha.commitSha" - Public Shared MajorMinorPatch As String = "2.3.4" - Public Shared SemVer As String = "2.3.4-beta.5" - Public Shared LegacySemVer As String = "2.3.4-beta5" - Public Shared LegacySemVerPadded As String = "2.3.4-beta0005" - Public Shared AssemblySemVer As String = "2.3.4.0" - Public Shared AssemblySemFileVer As String = "2.3.4.0" - Public Shared FullSemVer As String = "2.3.4-beta.5+6" - Public Shared InformationalVersion As String = "2.3.4-beta0005" - Public Shared BranchName As String = "master" - Public Shared Sha As String = "commitSha" - Public Shared NuGetVersionV2 As String = "2.3.4-beta0005" - Public Shared NuGetVersion As String = "2.3.4-beta0005" - Public Shared NuGetPreReleaseTagV2 As String = "beta0005" - Public Shared NuGetPreReleaseTag As String = "beta0005" - Public Shared CommitsSinceVersionSource As String = "6" - Public Shared CommitsSinceVersionSourcePadded As String = "0006" - Public Shared CommitDate As String = "2014-03-06" -End Class diff --git a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfo.approved.txt b/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfo.approved.txt deleted file mode 100644 index 6427bb3e62..0000000000 --- a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfo.approved.txt +++ /dev/null @@ -1,49 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub - Public Shared Major As String = "2" - Public Shared Minor As String = "3" - Public Shared Patch As String = "4" - Public Shared PreReleaseTag As String = "beta.5" - Public Shared PreReleaseTagWithDash As String = "-beta.5" - Public Shared PreReleaseLabel As String = "beta" - Public Shared PreReleaseNumber As String = "5" - Public Shared BuildMetaData As String = "6" - Public Shared BuildMetaDataPadded As String = "0006" - Public Shared FullBuildMetaData As String = "6.Branch.master.Sha.commitSha" - Public Shared MajorMinorPatch As String = "2.3.4" - Public Shared SemVer As String = "2.3.4-beta.5" - Public Shared LegacySemVer As String = "2.3.4-beta5" - Public Shared LegacySemVerPadded As String = "2.3.4-beta0005" - Public Shared AssemblySemVer As String = "2.3.0.0" - Public Shared AssemblySemFileVer As String = "2.3.4.0" - Public Shared FullSemVer As String = "2.3.4-beta.5+6" - Public Shared InformationalVersion As String = "2.3.4-beta0005" - Public Shared BranchName As String = "master" - Public Shared Sha As String = "commitSha" - Public Shared NuGetVersionV2 As String = "2.3.4-beta0005" - Public Shared NuGetVersion As String = "2.3.4-beta0005" - Public Shared NuGetPreReleaseTagV2 As String = "beta0005" - Public Shared NuGetPreReleaseTag As String = "beta0005" - Public Shared CommitsSinceVersionSource As String = "6" - Public Shared CommitsSinceVersionSourcePadded As String = "0006" - Public Shared CommitDate As String = "2014-03-06" -End Class diff --git a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfoWithMultipleVariables.approved.txt b/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfoWithMultipleVariables.approved.txt deleted file mode 100644 index e01886df17..0000000000 --- a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfoWithMultipleVariables.approved.txt +++ /dev/null @@ -1,49 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub - Public Shared Major As String = "2" - Public Shared Minor As String = "3" - Public Shared Patch As String = "4" - Public Shared PreReleaseTag As String = "beta.5" - Public Shared PreReleaseTagWithDash As String = "-beta.5" - Public Shared PreReleaseLabel As String = "beta" - Public Shared PreReleaseNumber As String = "5" - Public Shared BuildMetaData As String = "6" - Public Shared BuildMetaDataPadded As String = "0006" - Public Shared FullBuildMetaData As String = "6.Branch.master.Sha.commitSha" - Public Shared MajorMinorPatch As String = "2.3.4" - Public Shared SemVer As String = "2.3.4-beta.5" - Public Shared LegacySemVer As String = "2.3.4-beta5" - Public Shared LegacySemVerPadded As String = "2.3.4-beta0005" - Public Shared AssemblySemVer As String = "2.3.0.0" - Public Shared AssemblySemFileVer As String = "2.3.4.0" - Public Shared FullSemVer As String = "2.3.4-beta.5+6" - Public Shared InformationalVersion As String = "master-2.3.4-commitSha" - Public Shared BranchName As String = "master" - Public Shared Sha As String = "commitSha" - Public Shared NuGetVersionV2 As String = "2.3.4-beta0005" - Public Shared NuGetVersion As String = "2.3.4-beta0005" - Public Shared NuGetPreReleaseTagV2 As String = "beta0005" - Public Shared NuGetPreReleaseTag As String = "beta0005" - Public Shared CommitsSinceVersionSource As String = "6" - Public Shared CommitsSinceVersionSourcePadded As String = "0006" - Public Shared CommitDate As String = "2014-03-06" -End Class diff --git a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major_NugetAssemblyInfo.approved.txt b/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major_NugetAssemblyInfo.approved.txt deleted file mode 100644 index 5e45b4e67a..0000000000 --- a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyAssemblyVersion_Major_NugetAssemblyInfo.approved.txt +++ /dev/null @@ -1,49 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub - Public Shared Major As String = "2" - Public Shared Minor As String = "3" - Public Shared Patch As String = "4" - Public Shared PreReleaseTag As String = "beta.5" - Public Shared PreReleaseTagWithDash As String = "-beta.5" - Public Shared PreReleaseLabel As String = "beta" - Public Shared PreReleaseNumber As String = "5" - Public Shared BuildMetaData As String = "6" - Public Shared BuildMetaDataPadded As String = "0006" - Public Shared FullBuildMetaData As String = "6.Branch.master.Sha.commitSha" - Public Shared MajorMinorPatch As String = "2.3.4" - Public Shared SemVer As String = "2.3.4-beta.5" - Public Shared LegacySemVer As String = "2.3.4-beta5" - Public Shared LegacySemVerPadded As String = "2.3.4-beta0005" - Public Shared AssemblySemVer As String = "2.0.0.0" - Public Shared AssemblySemFileVer As String = "2.3.4.0" - Public Shared FullSemVer As String = "2.3.4-beta.5+6" - Public Shared InformationalVersion As String = "2.3.4-beta0005" - Public Shared BranchName As String = "master" - Public Shared Sha As String = "commitSha" - Public Shared NuGetVersionV2 As String = "2.3.4-beta0005" - Public Shared NuGetVersion As String = "2.3.4-beta0005" - Public Shared NuGetPreReleaseTagV2 As String = "beta0005" - Public Shared NuGetPreReleaseTag As String = "beta0005" - Public Shared CommitsSinceVersionSource As String = "6" - Public Shared CommitsSinceVersionSourcePadded As String = "0006" - Public Shared CommitDate As String = "2014-03-06" -End Class diff --git a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyCreatedCode.approved.txt b/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyCreatedCode.approved.txt deleted file mode 100644 index da1571e592..0000000000 --- a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyCreatedCode.approved.txt +++ /dev/null @@ -1,49 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub - Public Shared Major As String = "1" - Public Shared Minor As String = "2" - Public Shared Patch As String = "3" - Public Shared PreReleaseTag As String = "unstable.4" - Public Shared PreReleaseTagWithDash As String = "-unstable.4" - Public Shared PreReleaseLabel As String = "unstable" - Public Shared PreReleaseNumber As String = "4" - Public Shared BuildMetaData As String = "5" - Public Shared BuildMetaDataPadded As String = "0005" - Public Shared FullBuildMetaData As String = "5.Branch.feature1.Sha.commitSha" - Public Shared MajorMinorPatch As String = "1.2.3" - Public Shared SemVer As String = "1.2.3-unstable.4" - Public Shared LegacySemVer As String = "1.2.3-unstable4" - Public Shared LegacySemVerPadded As String = "1.2.3-unstable0004" - Public Shared AssemblySemVer As String = "1.2.3.0" - Public Shared AssemblySemFileVer As String = "1.2.3.0" - Public Shared FullSemVer As String = "1.2.3-unstable.4+5" - Public Shared InformationalVersion As String = "1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha" - Public Shared BranchName As String = "feature1" - Public Shared Sha As String = "commitSha" - Public Shared NuGetVersionV2 As String = "1.2.3-unstable0004" - Public Shared NuGetVersion As String = "1.2.3-unstable0004" - Public Shared NuGetPreReleaseTagV2 As String = "unstable0004" - Public Shared NuGetPreReleaseTag As String = "unstable0004" - Public Shared CommitsSinceVersionSource As String = "5" - Public Shared CommitsSinceVersionSourcePadded As String = "0005" - Public Shared CommitDate As String = "2014-03-06" -End Class diff --git a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyCreatedCode_NoNamespaceConflict.approved.txt b/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyCreatedCode_NoNamespaceConflict.approved.txt deleted file mode 100644 index da1571e592..0000000000 --- a/src/GitVersionTask.Tests/Approved/VisualBasic/AssemblyInfoBuilderTests.VerifyCreatedCode_NoNamespaceConflict.approved.txt +++ /dev/null @@ -1,49 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub - Public Shared Major As String = "1" - Public Shared Minor As String = "2" - Public Shared Patch As String = "3" - Public Shared PreReleaseTag As String = "unstable.4" - Public Shared PreReleaseTagWithDash As String = "-unstable.4" - Public Shared PreReleaseLabel As String = "unstable" - Public Shared PreReleaseNumber As String = "4" - Public Shared BuildMetaData As String = "5" - Public Shared BuildMetaDataPadded As String = "0005" - Public Shared FullBuildMetaData As String = "5.Branch.feature1.Sha.commitSha" - Public Shared MajorMinorPatch As String = "1.2.3" - Public Shared SemVer As String = "1.2.3-unstable.4" - Public Shared LegacySemVer As String = "1.2.3-unstable4" - Public Shared LegacySemVerPadded As String = "1.2.3-unstable0004" - Public Shared AssemblySemVer As String = "1.2.3.0" - Public Shared AssemblySemFileVer As String = "1.2.3.0" - Public Shared FullSemVer As String = "1.2.3-unstable.4+5" - Public Shared InformationalVersion As String = "1.2.3-unstable.4+5.Branch.feature1.Sha.commitSha" - Public Shared BranchName As String = "feature1" - Public Shared Sha As String = "commitSha" - Public Shared NuGetVersionV2 As String = "1.2.3-unstable0004" - Public Shared NuGetVersion As String = "1.2.3-unstable0004" - Public Shared NuGetPreReleaseTagV2 As String = "unstable0004" - Public Shared NuGetPreReleaseTag As String = "unstable0004" - Public Shared CommitsSinceVersionSource As String = "5" - Public Shared CommitsSinceVersionSourcePadded As String = "0005" - Public Shared CommitDate As String = "2014-03-06" -End Class diff --git a/src/GitVersionTask.Tests/AssemblyInfoBuilderTests.cs b/src/GitVersionTask.Tests/AssemblyInfoBuilderTests.cs deleted file mode 100644 index 2a183ca1be..0000000000 --- a/src/GitVersionTask.Tests/AssemblyInfoBuilderTests.cs +++ /dev/null @@ -1,290 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Runtime.CompilerServices; -using GitVersion; -using GitVersionCore.Tests; -using Microsoft.Build.Framework; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.VisualBasic; -using NSubstitute; -using NUnit.Framework; -using Shouldly; - -[TestFixture] -public class AssemblyInfoBuilderTests -{ - public interface ICompiler - { - Compilation Compile(string assemblyInfoText); - - AssemblyInfoBuilder Builder { get; } - - string ApprovedSubFolder { get; } - } - - private class CSharpCompiler : ICompiler - { - public Compilation Compile(string assemblyInfoText) - { - return CSharpCompilation.Create("Fake.dll") - .WithOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)) - .AddReferences(MetadataReference.CreateFromFile(typeof(object).Assembly.Location)) - .AddSyntaxTrees(CSharpSyntaxTree.ParseText(assemblyInfoText)); - } - - public AssemblyInfoBuilder Builder { get { return new CSharpAssemblyInfoBuilder(); } } - - public string ApprovedSubFolder { get { return Path.Combine("Approved", "CSharp"); } } - } - - private class VisualBasicCompiler : ICompiler - { - public Compilation Compile(string assemblyInfoText) - { - return VisualBasicCompilation.Create("Fake.dll") - .WithOptions(new VisualBasicCompilationOptions(OutputKind.DynamicallyLinkedLibrary, rootNamespace: "Fake")) - .AddReferences(MetadataReference.CreateFromFile(typeof(object).Assembly.Location)) - .AddSyntaxTrees(VisualBasicSyntaxTree.ParseText(assemblyInfoText)); - } - - public AssemblyInfoBuilder Builder { get { return new VisualBasicAssemblyInfoBuilder(); } } - - public string ApprovedSubFolder { get { return Path.Combine("Approved", "VisualBasic"); } } - } - - private static readonly ICompiler[] compilers = new ICompiler[] - { - new CSharpCompiler(), - new VisualBasicCompiler() - }; - - [Test] - [NUnit.Framework.Category("NoMono")] - [NUnit.Framework.Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] - public void VerifyCreatedCode([ValueSource("compilers")]ICompiler compiler) - { - var semanticVersion = new SemanticVersion - { - Major = 1, - Minor = 2, - Patch = 3, - PreReleaseTag = "unstable4", - BuildMetaData = new SemanticVersionBuildMetaData(5, - "feature1", "commitSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z")) - }; - - var config = new TestEffectiveConfiguration(); - - var versionVariables = VariableProvider.GetVariablesFor(semanticVersion, config, false); - var assemblyInfoText = compiler.Builder.GetAssemblyInfoText(versionVariables, "Fake"); - assemblyInfoText.ShouldMatchApproved(c => c.SubFolder(compiler.ApprovedSubFolder)); - - var compilation = compiler.Compile(assemblyInfoText); - - using (var stream = new MemoryStream()) - { - var emitResult = compilation.Emit(stream); - - Assert.IsTrue(emitResult.Success, string.Join(Environment.NewLine, emitResult.Diagnostics.Select(x => x.Descriptor))); - - stream.Seek(0, SeekOrigin.Begin); - var assembly = Assembly.Load(stream.ToArray()); - VerifyGitVersionInformationAttribute(assembly, versionVariables); - } - } - - [Test] - [NUnit.Framework.Category("NoMono")] - [NUnit.Framework.Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] - public void VerifyCreatedCode_NoNamespaceConflict([ValueSource("compilers")]ICompiler compiler) - { - var semanticVersion = new SemanticVersion - { - Major = 1, - Minor = 2, - Patch = 3, - PreReleaseTag = "unstable4", - BuildMetaData = new SemanticVersionBuildMetaData(5, - "feature1", "commitSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z")) - }; - - var config = new TestEffectiveConfiguration(); - - var versionVariables = VariableProvider.GetVariablesFor(semanticVersion, config, false); - var assemblyInfoText = compiler.Builder.GetAssemblyInfoText(versionVariables, "Fake.System"); - assemblyInfoText.ShouldMatchApproved(c => c.SubFolder(compiler.ApprovedSubFolder)); - - var compilation = compiler.Compile(assemblyInfoText); - - var emitResult = compilation.Emit(new MemoryStream()); - Assert.IsTrue(emitResult.Success, string.Join(Environment.NewLine, emitResult.Diagnostics.Select(x => x.Descriptor))); - } - - [Test] - [MethodImpl(MethodImplOptions.NoInlining)] - [NUnit.Framework.Category("NoMono")] - [NUnit.Framework.Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] - public void VerifyAssemblyVersion_Major([ValueSource("compilers")]ICompiler compiler) - { - VerifyAssemblyVersion(compiler, AssemblyVersioningScheme.Major); - } - - [Test] - [MethodImpl(MethodImplOptions.NoInlining)] - [NUnit.Framework.Category("NoMono")] - [NUnit.Framework.Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] - public void VerifyAssemblyVersion_MajorMinor([ValueSource("compilers")]ICompiler compiler) - { - VerifyAssemblyVersion(compiler, AssemblyVersioningScheme.MajorMinor); - } - - [Test] - [MethodImpl(MethodImplOptions.NoInlining)] - [NUnit.Framework.Category("NoMono")] - [NUnit.Framework.Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] - public void VerifyAssemblyVersion_MajorMinorPatch([ValueSource("compilers")]ICompiler compiler) - { - VerifyAssemblyVersion(compiler, AssemblyVersioningScheme.MajorMinorPatch); - } - - [Test] - [MethodImpl(MethodImplOptions.NoInlining)] - [NUnit.Framework.Category("NoMono")] - [NUnit.Framework.Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] - public void VerifyAssemblyVersion_MajorMinorPatchTag([ValueSource("compilers")]ICompiler compiler) - { - VerifyAssemblyVersion(compiler, AssemblyVersioningScheme.MajorMinorPatchTag); - } - - [Test] - [MethodImpl(MethodImplOptions.NoInlining)] - [NUnit.Framework.Category("NoMono")] - [NUnit.Framework.Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] - public void VerifyAssemblyVersion_Major_InvalidInformationalValue([ValueSource("compilers")]ICompiler compiler) - { - var exception = Assert.Throws(() => VerifyAssemblyVersion(compiler, AssemblyVersioningScheme.Major, "{ThisVariableDoesntExist}")); - Assert.That(exception.Message, Does.Contain("ThisVariableDoesntExist")); - } - - [Test] - [MethodImpl(MethodImplOptions.NoInlining)] - [NUnit.Framework.Category("NoMono")] - [NUnit.Framework.Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] - public void VerifyAssemblyVersion_Major_NugetAssemblyInfo([ValueSource("compilers")]ICompiler compiler) - { - VerifyAssemblyVersion(compiler, AssemblyVersioningScheme.Major, "{NugetVersion}"); - } - - [Test] - [MethodImpl(MethodImplOptions.NoInlining)] - [NUnit.Framework.Category("NoMono")] - public void VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfoWithMultipleVariables([ValueSource("compilers")]ICompiler compiler) - { - VerifyAssemblyVersion(compiler, AssemblyVersioningScheme.MajorMinor, "{BranchName}-{Major}.{Minor}.{Patch}-{Sha}"); - } - - [Test] - [MethodImpl(MethodImplOptions.NoInlining)] - [NUnit.Framework.Category("NoMono")] - [NUnit.Framework.Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] - public void VerifyAssemblyVersion_MajorMinor_NugetAssemblyInfo([ValueSource("compilers")]ICompiler compiler) - { - VerifyAssemblyVersion(compiler, AssemblyVersioningScheme.MajorMinor, "{NugetVersion}"); - } - - [Test] - [MethodImpl(MethodImplOptions.NoInlining)] - [NUnit.Framework.Category("NoMono")] - [NUnit.Framework.Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] - public void VerifyAssemblyVersion_MajorMinorPatch_NugetAssemblyInfo([ValueSource("compilers")]ICompiler compiler) - { - VerifyAssemblyVersion(compiler, AssemblyVersioningScheme.MajorMinorPatch, "{NugetVersion}"); - } - - [Test] - [MethodImpl(MethodImplOptions.NoInlining)] - [NUnit.Framework.Category("NoMono")] - [NUnit.Framework.Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")] - public void VerifyAssemblyVersion_MajorMinorPatchTag_NugetAssemblyInfo([ValueSource("compilers")]ICompiler compiler) - { - VerifyAssemblyVersion(compiler, AssemblyVersioningScheme.MajorMinorPatchTag, "{NugetVersion}"); - } - - [Test] - public void GetAssemblyInfoBuilder_Empty_ThrowsWarningException() - { - var taskItems = Substitute.For>(); - var exception = Assert.Throws(() => AssemblyInfoBuilder.GetAssemblyInfoBuilder(taskItems)); - exception.Message.ShouldBe("Unable to determine which AssemblyBuilder required to generate GitVersion assembly information"); - } - - [Test] - public void GetAssemblyInfoBuilder_Null_ThrowsArgumentNullException() - { - var exception = Assert.Throws(() => AssemblyInfoBuilder.GetAssemblyInfoBuilder(null)); - exception.ParamName.ShouldBe("compileFiles"); - } - - [TestCase("Class1.cs", typeof(CSharpAssemblyInfoBuilder))] - [TestCase("Class1.vb", typeof(VisualBasicAssemblyInfoBuilder))] - [TestCase("Class1.fs", typeof(FSharpAssemblyInfoBuilder))] - [TestCase("AssemblyInfo.cs", typeof(CSharpAssemblyInfoBuilder))] - [TestCase("AssemblyInfo.vb", typeof(VisualBasicAssemblyInfoBuilder))] - [TestCase("AssemblyInfo.fs", typeof(FSharpAssemblyInfoBuilder))] - public void GetAssemblyInfoBuilder_ShouldReturnAppropriateAssemblyInfoBuilder(string fileName, Type assemblyInfoBuilderType) - { - var taskItem = Substitute.For(); - taskItem.ItemSpec.Returns(fileName); - - var assemblyInfoBuilder = AssemblyInfoBuilder.GetAssemblyInfoBuilder(new[] { taskItem }); - - assemblyInfoBuilder.ShouldNotBeNull(); - assemblyInfoBuilder.ShouldBeOfType(assemblyInfoBuilderType); - } - - static void VerifyAssemblyVersion(ICompiler compiler, AssemblyVersioningScheme avs, string assemblyInformationalFormat = null) - { - var semanticVersion = new SemanticVersion - { - Major = 2, - Minor = 3, - Patch = 4, - PreReleaseTag = "beta.5", - BuildMetaData = new SemanticVersionBuildMetaData(6, - "master", "commitSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z")), - }; - - var config = new TestEffectiveConfiguration(assemblyVersioningScheme: avs, assemblyInformationalFormat: assemblyInformationalFormat); - - var versionVariables = VariableProvider.GetVariablesFor(semanticVersion, config, false); - var assemblyInfoText = compiler.Builder.GetAssemblyInfoText(versionVariables, "Fake"); - assemblyInfoText.ShouldMatchApproved(c => c.UseCallerLocation().SubFolder(compiler.ApprovedSubFolder)); - - var compilation = compiler.Compile(assemblyInfoText); - - var emitResult = compilation.Emit(new MemoryStream()); - Assert.IsTrue(emitResult.Success, string.Join(Environment.NewLine, emitResult.Diagnostics.Select(x => x.Descriptor))); - } - - static void VerifyGitVersionInformationAttribute(Assembly assembly, VersionVariables versionVariables) - { - var gitVersionInformation = assembly.GetType("Fake.GitVersionInformation"); - var fields = gitVersionInformation.GetFields(BindingFlags.Static | BindingFlags.Public); - - foreach (var variable in versionVariables) - { - Assert.IsNotNull(variable.Value); - - var field = fields.FirstOrDefault(p => p.Name == variable.Key); - Assert.IsNotNull(field); - - var value = field.GetValue(null); - Assert.AreEqual(variable.Value, value, "{0} had an invalid value.", field.Name); - } - } -} \ No newline at end of file diff --git a/src/GitVersionTask.Tests/GitVersionTask.Tests.csproj b/src/GitVersionTask.Tests/GitVersionTask.Tests.csproj index 8fcf5aa054..609219d570 100644 --- a/src/GitVersionTask.Tests/GitVersionTask.Tests.csproj +++ b/src/GitVersionTask.Tests/GitVersionTask.Tests.csproj @@ -40,18 +40,6 @@ true - - ..\packages\ApprovalTests.3.0.11\lib\net40\ApprovalTests.dll - True - - - ..\packages\ApprovalUtilities.3.0.11\lib\net45\ApprovalUtilities.dll - True - - - ..\packages\ApprovalUtilities.3.0.11\lib\net45\ApprovalUtilities.Net45.dll - True - ..\packages\FluentDateTime.1.13.0\lib\NET35\FluentDateTime.dll True @@ -66,23 +54,7 @@ - - ..\packages\Microsoft.CodeAnalysis.Common.1.3.2\lib\net45\Microsoft.CodeAnalysis.dll - True - - - ..\packages\Microsoft.CodeAnalysis.CSharp.1.3.2\lib\net45\Microsoft.CodeAnalysis.CSharp.dll - True - - - ..\packages\Microsoft.CodeAnalysis.VisualBasic.1.3.2\lib\net45\Microsoft.CodeAnalysis.VisualBasic.dll - True - - - ..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll - True - ..\packages\NSubstitute.1.10.0.0\lib\net45\NSubstitute.dll True @@ -91,32 +63,19 @@ ..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll True - - ..\packages\ObjectApproval.1.3.0\lib\NET40\ObjectApproval.dll - True - ..\packages\Shouldly.2.7.0\lib\net40\Shouldly.dll True - - ..\packages\System.Collections.Immutable.1.3.1\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll - True - - - ..\packages\System.Reflection.Metadata.1.4.2\lib\portable-net45+win8\System.Reflection.Metadata.dll - True - - @@ -135,28 +94,6 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -176,10 +113,6 @@ - - - - diff --git a/src/GitVersionTask.Tests/packages.config b/src/GitVersionTask.Tests/packages.config index 856ed3b632..ea2a6b4fc9 100644 --- a/src/GitVersionTask.Tests/packages.config +++ b/src/GitVersionTask.Tests/packages.config @@ -1,31 +1,13 @@  - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/GitVersionTask/AssemblyInfoBuilder/AssemblyInfoBuilder.cs b/src/GitVersionTask/AssemblyInfoBuilder/AssemblyInfoBuilder.cs deleted file mode 100644 index 6ae0429f59..0000000000 --- a/src/GitVersionTask/AssemblyInfoBuilder/AssemblyInfoBuilder.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using GitTools; -using GitVersion; -using Microsoft.Build.Framework; - -public abstract class AssemblyInfoBuilder -{ - private static readonly Dictionary assemblyInfoBuilders = new Dictionary - { - {".cs", typeof(CSharpAssemblyInfoBuilder)}, - {".vb", typeof(VisualBasicAssemblyInfoBuilder)}, - {".fs", typeof(FSharpAssemblyInfoBuilder)}, - }; - - public abstract string AssemblyInfoExtension { get; } - - public static AssemblyInfoBuilder GetAssemblyInfoBuilder(IEnumerable compileFiles) - { - if (compileFiles == null) - { - throw new ArgumentNullException("compileFiles"); - } - - Type builderType; - - var assemblyInfoExtension = compileFiles - .Select(x => x.ItemSpec) - .Select(Path.GetExtension) - // TODO: While it works, this seems like a bad way to discover the language is being compiled. @asbjornu - .FirstOrDefault(extension => assemblyInfoBuilders.ContainsKey(extension.ToLowerInvariant())); - - if (assemblyInfoExtension != null && assemblyInfoBuilders.TryGetValue(assemblyInfoExtension, out builderType)) - { - return Activator.CreateInstance(builderType) as AssemblyInfoBuilder; - } - - throw new WarningException("Unable to determine which AssemblyBuilder required to generate GitVersion assembly information"); - } - - public abstract string GetAssemblyInfoText(VersionVariables vars, string rootNamespace); -} \ No newline at end of file diff --git a/src/GitVersionTask/AssemblyInfoBuilder/CSharpAssemblyInfoBuilder.cs b/src/GitVersionTask/AssemblyInfoBuilder/CSharpAssemblyInfoBuilder.cs deleted file mode 100644 index 5fbb85721e..0000000000 --- a/src/GitVersionTask/AssemblyInfoBuilder/CSharpAssemblyInfoBuilder.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using GitVersion; - -public class CSharpAssemblyInfoBuilder : AssemblyInfoBuilder -{ - public override string AssemblyInfoExtension { get { return "cs"; } } - - public override string GetAssemblyInfoText(VersionVariables vars, string rootNamespace) - { - var v = vars.ToList(); - - // TODO: Consolidate this with GitVersion.VersionAssemblyInfoResources.AssemblyVersionInfoTemplates. @asbjornu - var assemblyInfo = string.Format( -@"//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: AssemblyVersion(""{0}"")] -[assembly: AssemblyFileVersion(""{1}"")] -[assembly: AssemblyInformationalVersion(""{2}"")] - -namespace {4} -{{ - - [global::System.Runtime.CompilerServices.CompilerGenerated] - static class GitVersionInformation - {{ -{3} - }} - -}} -", - vars.AssemblySemVer, - vars.AssemblySemFileVer, - vars.InformationalVersion, - GenerateStaticVariableMembers(v), - rootNamespace); - - return assemblyInfo; - } - - static string GenerateStaticVariableMembers(IList> vars) - { - return GenerateMembers(vars, " public static string {0} = \"{1}\";"); - } - - - static string GenerateMembers(IList> vars, string memberFormat) - { - return string.Join(Environment.NewLine, vars.Select(v => string.Format(memberFormat, v.Key, v.Value))); - } -} \ No newline at end of file diff --git a/src/GitVersionTask/AssemblyInfoBuilder/FSharpAssemblyInfoBuilder.cs b/src/GitVersionTask/AssemblyInfoBuilder/FSharpAssemblyInfoBuilder.cs deleted file mode 100644 index eb5949a91a..0000000000 --- a/src/GitVersionTask/AssemblyInfoBuilder/FSharpAssemblyInfoBuilder.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using GitVersion; - -public class FSharpAssemblyInfoBuilder : AssemblyInfoBuilder -{ - public override string AssemblyInfoExtension { get { return "fs"; } } - - public override string GetAssemblyInfoText(VersionVariables vars, string rootNamespace) - { - var v = vars.ToList(); - - // TODO: Consolidate this with GitVersion.VersionAssemblyInfoResources.AssemblyVersionInfoTemplates. @asbjornu - var assemblyInfo = string.Format( -@"//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// GitVersion -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace {4} - -open System -open System.Reflection - -[] -[] -[] - -do - () - -[] -[] -module GitVersionInformation = -{3} -", - vars.AssemblySemVer, - vars.AssemblySemFileVer, - vars.InformationalVersion, - GenerateStaticVariableMembers(v), - rootNamespace); - - return assemblyInfo; - } - - static string GenerateStaticVariableMembers(IList> vars) - { - return GenerateMembers(vars, " let {0} = \"{1}\""); - } - - - static string GenerateMembers(IList> vars, string memberFormat) - { - return string.Join(Environment.NewLine, vars.Select(v => string.Format(memberFormat, v.Key, v.Value))); - } -} \ No newline at end of file diff --git a/src/GitVersionTask/AssemblyInfoBuilder/VisualBasicAssemblyInfoBuilder.cs b/src/GitVersionTask/AssemblyInfoBuilder/VisualBasicAssemblyInfoBuilder.cs deleted file mode 100644 index ec5efd38e9..0000000000 --- a/src/GitVersionTask/AssemblyInfoBuilder/VisualBasicAssemblyInfoBuilder.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using GitVersion; - -public class VisualBasicAssemblyInfoBuilder : AssemblyInfoBuilder -{ - public override string AssemblyInfoExtension { get { return "vb"; } } - - public override string GetAssemblyInfoText(VersionVariables vars, string rootNamespace) - { - var v = vars.ToList(); - - // TODO: Consolidate this with GitVersion.VersionAssemblyInfoResources.AssemblyVersionInfoTemplates. @asbjornu - var assemblyInfo = string.Format( -@"'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' GitVersion -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Imports System -Imports System.Reflection - - - - - - _ -NotInheritable Class GitVersionInformation - Private Sub New() - End Sub -{3} -End Class -", - vars.AssemblySemVer, - vars.AssemblySemFileVer, - vars.InformationalVersion, - GenerateStaticVariableMembers(v)); - - return assemblyInfo; - } - - static string GenerateStaticVariableMembers(IList> vars) - { - return GenerateMembers(vars, " Public Shared {0} As String = \"{1}\""); - } - - - static string GenerateMembers(IList> vars, string memberFormat) - { - return string.Join(Environment.NewLine, vars.Select(v => string.Format(memberFormat, v.Key, v.Value))); - } -} \ No newline at end of file diff --git a/src/GitVersionTask/GenerateGitVersionInformation.cs b/src/GitVersionTask/GenerateGitVersionInformation.cs new file mode 100644 index 0000000000..aa863b9e19 --- /dev/null +++ b/src/GitVersionTask/GenerateGitVersionInformation.cs @@ -0,0 +1,102 @@ +namespace GitVersionTask +{ + using System; + using System.ComponentModel; + using System.IO; + using GitVersion; + using GitVersion.Helpers; + using Microsoft.Build.Framework; + + public class GenerateGitVersionInformation : GitVersionTaskBase + { + TaskLogger logger; + + public GenerateGitVersionInformation() + { + logger = new TaskLogger(this); + Logger.SetLoggers(this.LogDebug, this.LogInfo, this.LogWarning, s => this.LogError(s)); + } + + [Required] + public string SolutionDirectory { get; set; } + + [Required] + public string ProjectFile { get; set; } + + [Required] + public string IntermediateOutputPath { get; set; } + + [Required] + public string Language { get; set; } + + [Output] + public string GitVersionInformationFilePath { get; set; } + + public bool NoFetch { get; set; } + + public override bool Execute() + { + try + { + InnerExecute(); + return true; + } + catch (WarningException errorException) + { + logger.LogWarning(errorException.Message); + return true; + } + catch (Exception exception) + { + logger.LogError("Error occurred: " + exception); + return false; + } + finally + { + Logger.Reset(); + } + } + + void InnerExecute() + { + VersionVariables versionVariables; + if (!ExecuteCore.TryGetVersion(SolutionDirectory, out versionVariables, NoFetch, new Authentication())) + { + return; + } + + var fileExtension = GetFileExtension(); + var fileName = $"GitVersionInformation.g.{fileExtension}"; + + if (IntermediateOutputPath == null) + { + fileName = $"GitVersionInformation_{Path.GetFileNameWithoutExtension(ProjectFile)}_{Path.GetRandomFileName()}.g.{fileExtension}"; + } + + var workingDirectory = IntermediateOutputPath ?? TempFileTracker.TempPath; + + GitVersionInformationFilePath = Path.Combine(workingDirectory, fileName); + + var generator = new GitVersionInformationGenerator(fileName, workingDirectory, versionVariables, new FileSystem()); + generator.Generate(); + } + + string GetFileExtension() + { + switch (Language) + { + case "C#": + return "cs"; + + case "F#": + return "fs"; + + case "VB": + return "vb"; + + default: + throw new Exception($"Unknown language detected: '{Language}'"); + } + } + } +} diff --git a/src/GitVersionTask/GitVersionTask.csproj b/src/GitVersionTask/GitVersionTask.csproj index 5ab4fdd607..f994daa49c 100644 --- a/src/GitVersionTask/GitVersionTask.csproj +++ b/src/GitVersionTask/GitVersionTask.csproj @@ -64,18 +64,15 @@ - - - - + - + diff --git a/src/GitVersionTask/NugetAssets/build/GitVersionTask.targets b/src/GitVersionTask/NugetAssets/build/GitVersionTask.targets index cb9f2d4fa2..0f0d549fd9 100644 --- a/src/GitVersionTask/NugetAssets/build/GitVersionTask.targets +++ b/src/GitVersionTask/NugetAssets/build/GitVersionTask.targets @@ -22,6 +22,10 @@ false true + + false + true + true false @@ -36,6 +40,9 @@ + @@ -55,7 +62,7 @@ NoFetch="$(GitVersion_NoFetchEnabled)" ProjectFile="$(MSBuildProjectFullPath)" IntermediateOutputPath="$(IntermediateOutputPath)" - RootNamespace="$(RootNamespace)" + Language="$(Language)" CompileFiles ="@(Compile)"> + + + + + + + + + + + diff --git a/src/GitVersionTask/NugetAssets/buildMultiTargeting/GitVersionTask.targets b/src/GitVersionTask/NugetAssets/buildMultiTargeting/GitVersionTask.targets index e0e7729a3f..1277615b57 100644 --- a/src/GitVersionTask/NugetAssets/buildMultiTargeting/GitVersionTask.targets +++ b/src/GitVersionTask/NugetAssets/buildMultiTargeting/GitVersionTask.targets @@ -21,6 +21,10 @@ false true + + false + true + false true @@ -34,6 +38,9 @@ + diff --git a/src/GitVersionTask/AssemblyInfoBuilder/UpdateAssemblyInfo.cs b/src/GitVersionTask/UpdateAssemblyInfo.cs similarity index 53% rename from src/GitVersionTask/AssemblyInfoBuilder/UpdateAssemblyInfo.cs rename to src/GitVersionTask/UpdateAssemblyInfo.cs index 26ec592ffb..f6972f9139 100644 --- a/src/GitVersionTask/AssemblyInfoBuilder/UpdateAssemblyInfo.cs +++ b/src/GitVersionTask/UpdateAssemblyInfo.cs @@ -3,23 +3,16 @@ using System; using System.ComponentModel; using System.IO; - using System.Text; - using GitVersion; using GitVersion.Helpers; - using Microsoft.Build.Framework; - // TODO: Consolidate this with GitVersion.AssemblyInfoFileUpdate in GitVersionExe. @asbjornu public class UpdateAssemblyInfo : GitVersionTaskBase { TaskLogger logger; public UpdateAssemblyInfo() { - CompileFiles = new ITaskItem[] - { - }; logger = new TaskLogger(this); Logger.SetLoggers(this.LogDebug, this.LogInfo, this.LogWarning, s => this.LogError(s)); } @@ -37,7 +30,7 @@ public UpdateAssemblyInfo() public ITaskItem[] CompileFiles { get; set; } [Required] - public string RootNamespace { get; set; } + public string Language { get; set; } [Output] public string AssemblyInfoTempFilePath { get; set; } @@ -78,45 +71,47 @@ void InnerExecute() { return; } + CreateTempAssemblyInfo(versionVariables); } void CreateTempAssemblyInfo(VersionVariables versionVariables) { - var assemblyInfoBuilder = AssemblyInfoBuilder.GetAssemblyInfoBuilder(CompileFiles); + var fileExtension = GetFileExtension(); + var assemblyInfoFileName = $"GitVersionTaskAssemblyInfo.g.{fileExtension}"; if (IntermediateOutputPath == null) { - var tempFileName = string.Format("AssemblyInfo_{0}_{1}.g.{2}", Path.GetFileNameWithoutExtension(ProjectFile), Path.GetRandomFileName(), assemblyInfoBuilder.AssemblyInfoExtension); - AssemblyInfoTempFilePath = Path.Combine(TempFileTracker.TempPath, tempFileName); - } - else - { - AssemblyInfoTempFilePath = Path.Combine(IntermediateOutputPath, string.Format("GitVersionTaskAssemblyInfo.g.{0}", assemblyInfoBuilder.AssemblyInfoExtension)); + assemblyInfoFileName = $"AssemblyInfo_{Path.GetFileNameWithoutExtension(ProjectFile)}_{Path.GetRandomFileName()}.g.{fileExtension}"; } - var assemblyInfo = assemblyInfoBuilder.GetAssemblyInfoText(versionVariables, RootNamespace).Trim(); - var encoding = EncodingHelper.DetectEncoding(AssemblyInfoTempFilePath) ?? Encoding.UTF8; + var workingDirectory = IntermediateOutputPath ?? TempFileTracker.TempPath; - // We need to try to read the existing text first if the file exists and see if it's the same - // This is to avoid writing when there's no differences and causing a rebuild - try + AssemblyInfoTempFilePath = Path.Combine(workingDirectory, assemblyInfoFileName); + + using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFileName, workingDirectory, versionVariables, new FileSystem(), true)) { - if (File.Exists(AssemblyInfoTempFilePath)) - { - var content = File.ReadAllText(AssemblyInfoTempFilePath, encoding).Trim(); - if (string.Equals(assemblyInfo, content, StringComparison.Ordinal)) - { - return; // nothign to do as the file matches what we'd create - } - } + assemblyInfoFileUpdater.Update(); + assemblyInfoFileUpdater.CommitChanges(); } - catch (Exception) + } + + string GetFileExtension() + { + switch(Language) { - // Something happened reading the file, try to overwrite anyway - } + case "C#": + return "cs"; - File.WriteAllText(AssemblyInfoTempFilePath, assemblyInfo, encoding); + case "F#": + return "fs"; + + case "VB": + return "vb"; + + default: + throw new Exception($"Unknown language detected: '{Language}'"); + } } } } \ No newline at end of file