Skip to content

Commit 673bd9f

Browse files
authored
Merge pull request #1216 from Freakazoid182/feature/fix-assemblyinfo-regex
Match RegEx for AssemblyInfo attributes without quotations in version
2 parents c24f0d5 + 73098a1 commit 673bd9f

File tree

2 files changed

+60
-5
lines changed

2 files changed

+60
-5
lines changed

src/GitVersionExe.Tests/AssemblyInfoFileUpdateTests.cs

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,61 @@ public void ShouldReplaceAssemblyVersionWhenCreatingAssemblyVersionFileAndEnsure
445445
});
446446
}
447447

448+
[TestCase("cs", "[assembly: AssemblyVersion (AssemblyInfo.Version) ]\r\n[assembly: AssemblyInformationalVersion(AssemblyInfo.InformationalVersion)]\r\n[assembly: AssemblyFileVersion(AssemblyInfo.FileVersion)]")]
449+
[TestCase("fs", "[<assembly: AssemblyVersion (AssemblyInfo.Version)>]\r\n[<assembly: AssemblyInformationalVersion(AssemblyInfo.InformationalVersion)>]\r\n[<assembly: AssemblyFileVersion(AssemblyInfo.FileVersion)>]")]
450+
[TestCase("vb", "<Assembly: AssemblyVersion (AssemblyInfo.Version)>\r\n<Assembly: AssemblyInformationalVersion(AssemblyInfo.InformationalVersion)>\r\n<Assembly: AssemblyFileVersion(AssemblyInfo.FileVersion)>")]
451+
public void ShouldReplaceAssemblyVersionInRelativePathWithVariables(string fileExtension, string assemblyFileContent)
452+
{
453+
var workingDir = Path.GetTempPath();
454+
var fileName = Path.Combine(workingDir, "Project", "src", "Properties", "AssemblyInfo." + fileExtension);
455+
456+
VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) =>
457+
{
458+
var args = new Arguments
459+
{
460+
UpdateAssemblyInfo = true,
461+
UpdateAssemblyInfoFileName = new HashSet<string>
462+
{
463+
Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension)
464+
}
465+
};
466+
using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem))
467+
{
468+
fileSystem.Received().WriteAllText(fileName, Arg.Is<string>(s =>
469+
s.Contains(@"AssemblyVersion(""2.3.0.0"")") &&
470+
s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") &&
471+
s.Contains(@"AssemblyFileVersion(""2.3.1.0"")")));
472+
}
473+
});
474+
}
475+
476+
[TestCase("cs", "[assembly: AssemblyVersion ( AssemblyInfo.VersionInfo ) ]\r\n[assembly: AssemblyInformationalVersion\t(\tAssemblyInfo.InformationalVersion\t)]\r\n[assembly: AssemblyFileVersion\r\n(\r\nAssemblyInfo.FileVersion\r\n)]")]
477+
[TestCase("fs", "[<assembly: AssemblyVersion ( AssemblyInfo.VersionInfo )>]\r\n[<assembly: AssemblyInformationalVersion\t(\tAssemblyInfo.InformationalVersion\t)>]\r\n[<assembly: AssemblyFileVersion\r\n(\r\nAssemblyInfo.FileVersion\r\n)>]")]
478+
[TestCase("vb", "<Assembly: AssemblyVersion ( AssemblyInfo.VersionInfo )>\r\n<Assembly: AssemblyInformationalVersion\t(\tAssemblyInfo.InformationalVersion\t)>\r\n<Assembly: AssemblyFileVersion\r\n(\r\nAssemblyInfo.FileVersion\r\n)>")]
479+
public void ShouldReplaceAssemblyVersionInRelativePathWithVariablesAndWhiteSpace(string fileExtension, string assemblyFileContent)
480+
{
481+
var workingDir = Path.GetTempPath();
482+
var fileName = Path.Combine(workingDir, "Project", "src", "Properties", "AssemblyInfo." + fileExtension);
483+
484+
VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) =>
485+
{
486+
var args = new Arguments
487+
{
488+
UpdateAssemblyInfo = true,
489+
UpdateAssemblyInfoFileName = new HashSet<string>
490+
{
491+
Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension)
492+
}
493+
};
494+
using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem))
495+
{
496+
fileSystem.Received().WriteAllText(fileName, Arg.Is<string>(s =>
497+
s.Contains(@"AssemblyVersion(""2.3.0.0"")") &&
498+
s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") &&
499+
s.Contains(@"AssemblyFileVersion(""2.3.1.0"")")));
500+
}
501+
});
502+
}
448503

449504
[TestCase("cs", "[assembly: AssemblyVersion(\"1.0.0.0\")]\r\n[assembly: AssemblyFileVersion(\"1.0.0.0\")]")]
450505
[TestCase("fs", "[<assembly: AssemblyVersion(\"1.0.0.0\")>]\r\n[<assembly: AssemblyFileVersion(\"1.0.0.0\")>]")]

src/GitVersionExe/AssemblyInfoFileUpdate.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ public AssemblyInfoFileUpdate(Arguments args, string workingDirectory, VersionVa
2525
Logger.WriteInfo($"Found {assemblyInfoFiles.Count} files");
2626

2727
var assemblyVersion = variables.AssemblySemVer;
28-
var assemblyVersionRegex = new Regex(@"AssemblyVersion(Attribute)?\s*\(\s*""[^""]*""\s*\)");
28+
var assemblyVersionRegex = new Regex(@"AssemblyVersion(Attribute)?\s*\(.*\)\s*");
2929
var assemblyVersionString = !string.IsNullOrWhiteSpace(assemblyVersion) ? $"AssemblyVersion(\"{assemblyVersion}\")" : null;
3030
var assemblyInfoVersion = variables.InformationalVersion;
31-
var assemblyInfoVersionRegex = new Regex(@"AssemblyInformationalVersion(Attribute)?\s*\(\s*""[^""]*""\s*\)");
32-
var assemblyInfoVersionString = $"AssemblyInformationalVersion(\"{assemblyInfoVersion}\")";
33-
var assemblyFileVersion = variables.AssemblySemFileVer;
34-
var assemblyFileVersionRegex = new Regex(@"AssemblyFileVersion(Attribute)?\s*\(\s*""[^""]*""\s*\)");
31+
var assemblyInfoVersionRegex = new Regex(@"AssemblyInformationalVersion(Attribute)?\s*\(.*\)\s*");
32+
var assemblyInfoVersionString = $"AssemblyInformationalVersion(\"{assemblyInfoVersion}\")";
33+
var assemblyFileVersion = variables.AssemblySemFileVer;
34+
var assemblyFileVersionRegex = new Regex(@"AssemblyFileVersion(Attribute)?\s*\(.*\)\s*");
3535
var assemblyFileVersionString = !string.IsNullOrWhiteSpace(assemblyFileVersion) ? $"AssemblyFileVersion(\"{assemblyFileVersion}\")" : null;
3636

3737
foreach (var assemblyInfoFile in assemblyInfoFiles)

0 commit comments

Comments
 (0)