Skip to content

Commit 22aa5d3

Browse files
committed
Merge pull request #190 from JakeGinnivan/GemAndCommandLinePackaging
Gem and command line packaging
2 parents 2accf3e + cc44bcd commit 22aa5d3

File tree

6 files changed

+72
-6
lines changed

6 files changed

+72
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,4 @@ Thumbs.db
8282
Desktop.ini
8383

8484
_NCrunch_GitVersion
85+
NuGetCommandLineBuild/

Build.cmd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set framework=v4.0.30319
66

77
"%SystemDrive%\Windows\Microsoft.NET\Framework\%framework%\MSBuild.exe" "%~dp0GitVersion.sln"
88

9-
mkdir "%~dp0GitVersion\bin\Intermediate"
10-
cp "%~dp0GitVersion\bin\Debug\GitVersion.exe" "%~dp0GitVersion\bin\Intermediate\GitVersion.exe"
9+
mkdir "%~dp0GitVersionExe\bin\Intermediate"
10+
cp "%~dp0GitVersionExe\bin\Debug\GitVersion.exe" "%~dp0GitVersionExe\bin\Intermediate\GitVersion.exe"
1111

12-
"%~dp0GitVersion\bin\Intermediate\GitVersion.exe" /l console /output buildserver /updateAssemblyInfo /proj "%~dp0GitVersion.sln"
12+
"%~dp0GitVersionExe\bin\Intermediate\GitVersion.exe" /l console /output buildserver /updateAssemblyInfo /proj "%~dp0GitVersion.sln"

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: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
<None Include="NugetAssets\chocolateyUninstall.ps1">
6767
<SubType>Designer</SubType>
6868
</None>
69+
<None Include="NugetAssets\GitVersion.CommandLine.nuspec" />
6970
<None Include="NugetAssets\GitVersion.nuspec">
7071
<SubType>Designer</SubType>
7172
</None>
@@ -97,24 +98,71 @@
9798
</ItemGroup>
9899
<Delete Files="@(ExeFilesToDelete)" />
99100
</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>
100123
<Target Name="AfterBuild" DependsOnTargets="Clean">
101124
<!-- NugetExeBuild -->
102125
<MakeDir Directories="$(SolutionDir)NuGetExeBuild" />
103126
<Copy SourceFiles="$(OutputPath)\GitVersion.pdb" DestinationFolder="$(SolutionDir)NuGetExeBuild\Tools" />
104127
<Copy SourceFiles="$(OutputPath)\GitVersion.exe" DestinationFolder="$(SolutionDir)NuGetExeBuild\Tools" />
105128
<Copy SourceFiles="$(ProjectDir)NugetAssets\chocolateyInstall.ps1" DestinationFolder="$(SolutionDir)NuGetExeBuild\Tools" />
106129
<Copy SourceFiles="$(ProjectDir)NugetAssets\chocolateyUninstall.ps1" DestinationFolder="$(SolutionDir)NuGetExeBuild\Tools" />
107-
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersion.nuspec" DestinationFolder="$(SolutionDir)NuGetExeBuild" />
130+
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersion.Portable.nuspec" DestinationFolder="$(SolutionDir)NuGetExeBuild" />
108131
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(SolutionDir)NuGetExeBuild" MetadataAssembly="$(OutputPath)GitVersion.exe" />
132+
<!-- NugetCommandLineBuild -->
133+
<MakeDir Directories="$(SolutionDir)NuGetCommandLineBuild" />
134+
<Copy SourceFiles="$(OutputPath)\GitVersion.pdb" DestinationFolder="$(SolutionDir)NuGetCommandLineBuild\Tools" />
135+
<Copy SourceFiles="$(OutputPath)\GitVersion.exe" DestinationFolder="$(SolutionDir)NuGetCommandLineBuild\Tools" />
136+
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersion.CommandLine.nuspec" DestinationFolder="$(SolutionDir)NuGetCommandLineBuild" />
137+
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(SolutionDir)NuGetCommandLineBuild" MetadataAssembly="$(OutputPath)GitVersion.exe" />
109138
<!-- Gem -->
110139
<Copy SourceFiles="$(OutputPath)\GitVersion.pdb" DestinationFolder="$(SolutionDir)GemBuild\bin" />
111140
<Copy SourceFiles="$(OutputPath)\GitVersion.exe" DestinationFolder="$(SolutionDir)GemBuild\bin" />
112141
<ItemGroup>
113142
<GemFiles Include="$(ProjectDir)GemAssets\bin*\**\*.*" />
114143
<GemFiles Include="$(ProjectDir)GemAssets\lib*\**\*.*" />
144+
<GemFiles Include="$(ProjectDir)GemAssets\spec*\**\*.*" />
115145
<GemFiles Include="$(ProjectDir)GemAssets\*.gemspec" />
146+
<GemFiles Include="$(ProjectDir)GemAssets\.rspec" />
147+
<GemFiles Include="$(ProjectDir)GemAssets\Guardfile" />
148+
<GemFiles Include="$(ProjectDir)GemAssets\Gemfile" />
116149
</ItemGroup>
117150
<Copy SourceFiles="@(GemFiles)" DestinationFiles="@(GemFiles->'$(SolutionDir)GemBuild\%(RecursiveDir)%(Filename)%(Extension)')" />
151+
152+
<PropertyGroup>
153+
<GemVersion Condition="'$(GitVersion_PreReleaseTag)' == ''">$(GitVersion_MajorMinorPatch)</GemVersion>
154+
<GemVersion Condition="'$(GitVersion_PreReleaseTag)' != ''">$(GitVersion_MajorMinorPatch).$(GitVersion_PreReleaseTag)</GemVersion>
155+
</PropertyGroup>
156+
157+
<ReplaceFileText
158+
InputFilename="$(SolutionDir)GemBuild\gitversion.gemspec"
159+
OutputFilename="$(SolutionDir)GemBuild\gitversion.gemspec"
160+
MatchExpression="\$version\$"
161+
ReplacementText="$(GemVersion)"
162+
Condition="'$(GitVersion_SemVer)' != ''"/>
163+
164+
<Exec Command="gem build gitversion.gemspec" ContinueOnError="True"
165+
WorkingDirectory="$(SolutionDir)GemBuild" Condition="'$(GitVersion_SemVer)' != ''" />
118166
</Target>
119167
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
120168
<PropertyGroup>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0"?>
2+
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
3+
<metadata>
4+
<id>GitVersion.CommandLine</id>
5+
<version>$version$</version>
6+
<title>GitVersion</title>
7+
<authors>NServiceBus Ltd</authors>
8+
<owners>nservicebus, simoncropp</owners>
9+
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
10+
<projectUrl>http://github.com/Particular/GitVersion</projectUrl>
11+
<iconUrl>https://raw.github.com/Particular/GitVersion/master/Icons/package_icon.png</iconUrl>
12+
<requireLicenseAcceptance>false</requireLicenseAcceptance>
13+
<description>Derives SemVer information from a repository following GitFlow or GitHubFlow.</description>
14+
<language>en-AU</language>
15+
<tags>Git, Versioning, GitVersion, GitFlowVersion, GitFlow, GitHubFlow, SemVer</tags>
16+
</metadata>
17+
</package>

GitVersionExe/NugetAssets/GitVersion.nuspec renamed to GitVersionExe/NugetAssets/GitVersion.Portable.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0"?>
22
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
33
<metadata>
4-
<id>GitVersion</id>
4+
<id>GitVersion.Portable</id>
55
<version>$version$</version>
66
<title>GitVersion</title>
77
<authors>NServiceBus Ltd</authors>

0 commit comments

Comments
 (0)