Skip to content

Commit bee4b87

Browse files
committed
add ability to append revision to assm info
1 parent 17c114b commit bee4b87

File tree

4 files changed

+63
-27
lines changed

4 files changed

+63
-27
lines changed

GitVersionTask/AssemblyInfoBuilder.cs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ public class AssemblyInfoBuilder
77
{
88
public SemanticVersion SemanticVersion;
99
public bool SignAssembly;
10+
public bool AppendRevision;
11+
1012
public string GetAssemblyInfoText()
1113
{
1214
var assemblyInfo = string.Format(@"
@@ -38,10 +40,10 @@ static class GitVersionInformation
3840
}}
3941
4042
41-
", GetAssemblyVersion(), GetAssemblyFileVersion(), SemanticVersion.ToString("i"),
42-
SemanticVersion.BuildMetaData.OriginalReleaseDate.Value.UtcDateTime.ToString("yyyy-MM-dd"),
43-
SemanticVersion.BuildMetaData.ReleaseDate.Value.UtcDateTime.ToString("yyyy-MM-dd"),
44-
GenerateVariableMembers());
43+
", GetAssemblyVersion(), GetAssemblyFileVersion(), SemanticVersion.ToString("i"),
44+
SemanticVersion.BuildMetaData.OriginalReleaseDate.Value.UtcDateTime.ToString("yyyy-MM-dd"),
45+
SemanticVersion.BuildMetaData.ReleaseDate.Value.UtcDateTime.ToString("yyyy-MM-dd"),
46+
GenerateVariableMembers());
4547

4648
return assemblyInfo;
4749
}
@@ -65,12 +67,21 @@ string GetAssemblyVersion()
6567
return string.Format("{0}.{1}.0", SemanticVersion.Major, SemanticVersion.Minor);
6668
}
6769
// for non strong named we want to include the patch
68-
return string.Format("{0}.{1}.{2}", SemanticVersion.Major, SemanticVersion.Minor, SemanticVersion.Patch);
70+
return GetAssemblyFileVersion();
6971
}
7072

7173
string GetAssemblyFileVersion()
7274
{
75+
if (AppendRevision && SemanticVersion.BuildMetaData.Branch == "master")
76+
{
77+
if (SemanticVersion.BuildMetaData.CommitsSinceTag != null)
78+
{
79+
return string.Format("{0}.{1}.{2}.{3}", SemanticVersion.Major, SemanticVersion.Minor, SemanticVersion.Patch, SemanticVersion.BuildMetaData.CommitsSinceTag);
80+
}
81+
}
7382
return string.Format("{0}.{1}.{2}", SemanticVersion.Major, SemanticVersion.Minor, SemanticVersion.Patch);
7483
}
7584
}
85+
86+
7687
}

GitVersionTask/GitVersionTask.csproj

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,17 @@
8787
</Target>
8888
<Target Name="AfterBuild" DependsOnTargets="Clean">
8989
<MakeDir Directories="$(SolutionDir)NuGetTaskBuild" />
90+
<CreateItem Include="$(SolutionDir)GitVersionTask\bin\$(ConfigurationName)\NativeBinaries\amd64\*.dll">
91+
<Output TaskParameter="Include" ItemName="amd64" />
92+
</CreateItem>
93+
<Copy SourceFiles="@(amd64)" DestinationFolder="$(SolutionDir)NuGetTaskBuild\NativeBinaries\amd64" />
94+
<CreateItem Include="$(SolutionDir)GitVersionTask\bin\$(ConfigurationName)\NativeBinaries\x86\*.dll">
95+
<Output TaskParameter="Include" ItemName="x86" />
96+
</CreateItem>
97+
<Copy SourceFiles="@(x86)" DestinationFolder="$(SolutionDir)NuGetTaskBuild\NativeBinaries\x86" />
98+
9099
<Copy SourceFiles="$(OutputPath)GitVersionTask.dll" DestinationFolder="$(SolutionDir)NuGetTaskBuild" />
100+
<Copy SourceFiles="$(OutputPath)LibGit2Sharp.dll" DestinationFolder="$(SolutionDir)NuGetTaskBuild" />
91101
<Copy SourceFiles="$(OutputPath)GitVersionTask.pdb" DestinationFolder="$(SolutionDir)NuGetTaskBuild" />
92102
<Copy SourceFiles="$(OutputPath)GitVersionCore.dll" DestinationFolder="$(SolutionDir)NuGetTaskBuild" />
93103
<Copy SourceFiles="$(OutputPath)GitVersionCore.pdb" DestinationFolder="$(SolutionDir)NuGetTaskBuild" />
@@ -103,5 +113,13 @@
103113
<Error Condition="!Exists('..\packages\Fody.1.22.1\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.1.22.1\build\Fody.targets'))" />
104114
<Error Condition="!Exists('..\packages\PepitaPackage.1.20.0.0\build\PepitaPackage.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\PepitaPackage.1.20.0.0\build\PepitaPackage.targets'))" />
105115
</Target>
106-
<Import Project="..\packages\PepitaPackage.1.20.0.0\build\PepitaPackage.targets" Condition="Exists('..\packages\PepitaPackage.1.20.0.0\build\PepitaPackage.targets')" />
116+
<Import Project="..\packages\PepitaPackage.1.20.0.0\build\PepitaPackage.targets" Condition="Exists('..\packages\PepitaPackage.1.20.0.0\build\PepitaPackage.targets')" /> <PropertyGroup>
117+
<PostBuildEvent>
118+
if not exist "$(TargetDir)NativeBinaries" md "$(TargetDir)NativeBinaries"
119+
if not exist "$(TargetDir)NativeBinaries\x86" md "$(TargetDir)NativeBinaries\x86"
120+
xcopy /s /y /d "$(SolutionDir)packages\LibGit2Sharp.0.16.0.0\lib\net35\NativeBinaries\x86\*.*" "$(TargetDir)NativeBinaries\x86"
121+
if not exist "$(TargetDir)NativeBinaries\amd64" md "$(TargetDir)NativeBinaries\amd64"
122+
xcopy /s /y /d "$(SolutionDir)packages\LibGit2Sharp.0.16.0.0\lib\net35\NativeBinaries\amd64\*.*" "$(TargetDir)NativeBinaries\amd64"</PostBuildEvent>
123+
</PropertyGroup>
124+
107125
</Project>

GitVersionTask/NugetAssets/GitVersionTask.targets

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
<PropertyGroup>
44
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)..\</SolutionDir>
55
</PropertyGroup>
6+
<PropertyGroup>
7+
<GitVersionAppendRevision Condition="$(GitVersionAppendRevision) == '' Or $(GitVersionAppendRevision) == '*Undefined*'">false</GitVersionAppendRevision>
8+
</PropertyGroup>
69

710
<UsingTask
811
TaskName="GitVersionTask.UpdateAssemblyInfo"
@@ -11,32 +14,33 @@
1114
TaskName="GitVersionTask.WriteVersionInfoToBuildLog"
1215
AssemblyFile="$(MSBuildThisFileDirectory)..\GitVersionTask.dll" />
1316

14-
<Target Name="UpdateAssemblyInfo"
15-
BeforeTargets="CoreCompile">
16-
<WriteVersionInfoToBuildLog
17-
SolutionDirectory="$(SolutionDir)"
17+
<Target Name="UpdateAssemblyInfo"
18+
BeforeTargets="CoreCompile">
19+
<WriteVersionInfoToBuildLog
20+
SolutionDirectory="$(SolutionDir)"
1821
/>
19-
<UpdateAssemblyInfo
20-
SolutionDirectory="$(SolutionDir)"
21-
ProjectFile="$(ProjectPath)"
22-
SignAssembly="$(SignAssembly)"
23-
CompileFiles ="@(Compile)">
24-
<Output
25-
TaskParameter="AssemblyInfoTempFilePath"
26-
PropertyName="AssemblyInfoTempFilePath" />
27-
</UpdateAssemblyInfo>
28-
29-
<ItemGroup>
30-
<Compile Include="$(AssemblyInfoTempFilePath)" />
31-
</ItemGroup>
32-
</Target>
22+
<UpdateAssemblyInfo
23+
SolutionDirectory="$(SolutionDir)"
24+
ProjectFile="$(ProjectPath)"
25+
AppendRevision="$(GitVersionAppendRevision)"
26+
SignAssembly="$(SignAssembly)"
27+
CompileFiles ="@(Compile)">
28+
<Output
29+
TaskParameter="AssemblyInfoTempFilePath"
30+
PropertyName="AssemblyInfoTempFilePath" />
31+
</UpdateAssemblyInfo>
32+
33+
<ItemGroup>
34+
<Compile Include="$(AssemblyInfoTempFilePath)" />
35+
</ItemGroup>
36+
</Target>
3337

3438
<!--Support for ncrunch-->
3539
<ItemGroup>
3640
<None Include="$(MSBuildThisFileDirectory)..\GitVersionTask.dll" />
3741
<None Include="$(MSBuildThisFileDirectory)..\GitVersionTask.pdb" />
38-
<None Include="$(MSBuildThisFileDirectory)..\GitVersion.exe" />
39-
<None Include="$(MSBuildThisFileDirectory)..\GitVersion.pdb" />
42+
<None Include="$(MSBuildThisFileDirectory)..\GitVersionCore.dll" />
43+
<None Include="$(MSBuildThisFileDirectory)..\GitVersionCore.pdb" />
4044
<None Include="$(MSBuildThisFileDirectory)..\LibGit2Sharp.dll" />
4145
<None Include="$(MSBuildThisFileDirectory)..\NativeBinaries\**\*" />
4246
</ItemGroup>

GitVersionTask/UpdateAssemblyInfo.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
public class UpdateAssemblyInfo : Task
1111
{
1212

13+
public bool AppendRevision { get; set; }
14+
1315
public bool SignAssembly { get; set; }
1416

1517
[Required]
@@ -77,7 +79,8 @@ void CreateTempAssemblyInfo(SemanticVersion semanticVersion)
7779
var assemblyInfoBuilder = new AssemblyInfoBuilder
7880
{
7981
SemanticVersion = semanticVersion,
80-
SignAssembly = SignAssembly
82+
SignAssembly = SignAssembly,
83+
AppendRevision = AppendRevision
8184
};
8285
var assemblyInfo = assemblyInfoBuilder.GetAssemblyInfoText();
8386

0 commit comments

Comments
 (0)