Skip to content

Commit c1dad6f

Browse files
author
Jake Ginnivan
committed
Automatically package Gem, will try and execute but continue if it fails (if Gem's not installed)
1 parent e2a83fa commit c1dad6f

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

GitVersionExe/GemAssets/gitversion.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Gem::Specification.new do |spec|
22
spec.platform = Gem::Platform::RUBY
33
spec.name = 'gitversion'
44
spec.licenses = ['MIT']
5-
spec.version = '0.20.0'
5+
spec.version = '$version$'
66
spec.summary = 'Derives SemVer information from a repository following GitFlow or GitHubFlow.'
77
spec.description = <<-EOF
88
Derives SemVer information from a repository following GitFlow or GitHubFlow.

GitVersionExe/GitVersionExe.csproj

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,28 @@
9898
</ItemGroup>
9999
<Delete Files="@(ExeFilesToDelete)" />
100100
</Target>
101+
<UsingTask TaskName="ReplaceFileText" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
102+
<ParameterGroup>
103+
<InputFilename ParameterType="System.String" Required="true" />
104+
<OutputFilename ParameterType="System.String" Required="true" />
105+
<MatchExpression ParameterType="System.String" Required="true" />
106+
<ReplacementText ParameterType="System.String" Required="true" />
107+
</ParameterGroup>
108+
<Task>
109+
<Reference Include="System.Core" />
110+
<Using Namespace="System" />
111+
<Using Namespace="System.IO" />
112+
<Using Namespace="System.Text.RegularExpressions" />
113+
<Code Type="Fragment" Language="cs">
114+
<![CDATA[
115+
File.WriteAllText(
116+
OutputFilename,
117+
Regex.Replace(File.ReadAllText(InputFilename), MatchExpression, ReplacementText)
118+
);
119+
]]>
120+
</Code>
121+
</Task>
122+
</UsingTask>
101123
<Target Name="AfterBuild" DependsOnTargets="Clean">
102124
<!-- NugetExeBuild -->
103125
<MakeDir Directories="$(SolutionDir)NuGetExeBuild" />
@@ -122,6 +144,18 @@
122144
<GemFiles Include="$(ProjectDir)GemAssets\*.gemspec" />
123145
</ItemGroup>
124146
<Copy SourceFiles="@(GemFiles)" DestinationFiles="@(GemFiles->'$(SolutionDir)GemBuild\%(RecursiveDir)%(Filename)%(Extension)')" />
147+
<Copy SourceFiles="$(ProjectDir)GemAssets\gitversion" DestinationFolder="$(SolutionDir)GemBuild\bin" />
148+
<Copy SourceFiles="$(ProjectDir)GemAssets\gitversion.gemspec" DestinationFolder="$(SolutionDir)GemBuild" />
149+
150+
<ReplaceFileText
151+
InputFilename="$(SolutionDir)GemBuild\gitversion.gemspec"
152+
OutputFilename="$(SolutionDir)GemBuild\gitversion.gemspec"
153+
MatchExpression="\$version\$"
154+
ReplacementText="$(GitVersion_SemVer)"
155+
Condition="'$(GitVersion_SemVer)' != ''"/>
156+
157+
<Exec Command="gem build gitversion.gemspec" ContinueOnError="True"
158+
WorkingDirectory="$(SolutionDir)GemBuild" Condition="'$(GitVersion_SemVer)' != ''" />
125159
</Target>
126160
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
127161
<PropertyGroup>

0 commit comments

Comments
 (0)