Skip to content

Commit aa5bb19

Browse files
authored
Merge pull request #890 from eatdrinksleepcode/unpack
Exclude LibGit2Sharp from ILRepack in NuGet.CommandLine
2 parents eca9c2b + b57b9c7 commit aa5bb19

File tree

12 files changed

+77
-23
lines changed

12 files changed

+77
-23
lines changed

.travis.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@ os:
77
- linux
88
- osx
99
before_install: # We need to download nuget.exe due to: https://github.com/travis-ci/travis-ci/issues/5932
10+
- git fetch --unshallow # Travis always does a shallow clone, but GitVersion needs the full history including branches and tags
1011
- mkdir -p .nuget
1112
- wget -O .nuget/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
1213
- mono .nuget/nuget.exe
1314
install:
1415
- mono .nuget/nuget.exe restore src/GitVersion.sln -Verbosity detailed
1516
- mono .nuget/nuget.exe install NUnit.Runners -Version 3.2.1 -OutputDirectory ./src/packages
1617
script:
18+
- xbuild ./src/GitVersion.sln /property:Configuration="Debug" /verbosity:detailed
19+
- mono ./build/NuGetCommandLineBuild/tools/GitVersion.exe -l console -output buildserver -updateAssemblyInfo
1720
- xbuild ./src/GitVersion.sln /property:Configuration="Debug" /verbosity:detailed
1821
- mono ./src/packages/NUnit.ConsoleRunner.3.2.1/tools/nunit3-console.exe ./src/GitVersionTask.Tests/bin/Debug/GitVersionTask.Tests.dll ./src/GitVersionCore.Tests/bin/Debug/GitVersionCore.Tests.dll ./src/GitVersionTask.Tests/bin/Debug/GitVersionTask.Tests.dll ./src/GitVersionExe.Tests/bin/Debug/GitVersionExe.Tests.dll --where "cat != NoMono" --noresult
1922

@@ -23,4 +26,4 @@ script:
2326
#
2427
# To run a clean build with Mono, executing all tests, do:
2528
# xbuild ./src/GitVersion.sln /t:Clean /verbosity:quiet && xbuild ./src/GitVersion.sln /property:Configuration="Debug" /verbosity:quiet && mono ./src/packages/NUnit.ConsoleRunner.3.2.1/tools/nunit3-console.exe ./src/GitVersionTask.Tests/bin/Debug/GitVersionTask.Tests.dll ./src/GitVersionCore.Tests/bin/Debug/GitVersionCore.Tests.dll ./src/GitVersionTask.Tests/bin/Debug/GitVersionTask.Tests.dll ./src/GitVersionExe.Tests/bin/Debug/GitVersionExe.Tests.dll --noresult --where "cat != NoMono" --noresult
26-
#
29+
#

src/GitVersionCore.Tests/ExecuteCoreTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,8 @@ public void DynamicRepositoriesShouldNotErrorWithFailedToFindGitDirectory()
141141
string RepositoryScope(ExecuteCore executeCore = null, Action<EmptyRepositoryFixture, VersionVariables> fixtureAction = null)
142142
{
143143
// Make sure GitVersion doesn't trigger build server mode when we are running the tests
144-
Environment.SetEnvironmentVariable("APPVEYOR", null);
144+
Environment.SetEnvironmentVariable(AppVeyor.EnvironmentVariableName, null);
145+
Environment.SetEnvironmentVariable(TravisCI.EnvironmentVariableName, null);
145146
var infoBuilder = new StringBuilder();
146147
Action<string> infoLogger = s =>
147148
{

src/GitVersionCore/BuildServers/AppVeyor.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66

77
public class AppVeyor : BuildServerBase
88
{
9-
public override bool CanApplyToCurrentContext()
9+
public const string EnvironmentVariableName = "APPVEYOR";
10+
11+
public override bool CanApplyToCurrentContext()
1012
{
11-
return !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("APPVEYOR"));
13+
return !string.IsNullOrEmpty(Environment.GetEnvironmentVariable(EnvironmentVariableName));
1214
}
1315

1416
public override string GenerateSetVersionMessage(VersionVariables variables)

src/GitVersionCore/BuildServers/BuildServerList.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ public static class BuildServerList
1313
new MyGet(),
1414
new Jenkins(),
1515
new GitLabCi(),
16-
new VsoAgent()
16+
new VsoAgent(),
17+
new TravisCI(),
1718
};
1819

1920
public static IEnumerable<IBuildServer> GetApplicableBuildServers()

src/GitVersionCore/BuildServers/TeamCity.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44

55
public class TeamCity : BuildServerBase
66
{
7-
public override bool CanApplyToCurrentContext()
7+
public const string EnvironmentVariableName = "TEAMCITY_VERSION";
8+
9+
public override bool CanApplyToCurrentContext()
810
{
9-
return !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("TEAMCITY_VERSION"));
11+
return !string.IsNullOrEmpty(Environment.GetEnvironmentVariable(EnvironmentVariableName));
1012
}
1113

1214
public override string GetCurrentBranch(bool usingDynamicRepos)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using System;
2+
namespace GitVersion
3+
{
4+
public class TravisCI : BuildServerBase
5+
{
6+
public const string EnvironmentVariableName = "TRAVIS";
7+
8+
public override bool CanApplyToCurrentContext ()
9+
{
10+
return "true".Equals(Environment.GetEnvironmentVariable(EnvironmentVariableName)) && "true".Equals(Environment.GetEnvironmentVariable("CI"));
11+
}
12+
13+
public override string GenerateSetVersionMessage(VersionVariables variables)
14+
{
15+
return variables.FullSemVer;
16+
}
17+
18+
public override string[] GenerateSetParameterMessage(string name, string value)
19+
{
20+
return new[]
21+
{
22+
string.Format("GitVersion_{0}={1}", name, value)
23+
};
24+
}
25+
26+
public override bool PreventFetch ()
27+
{
28+
return true;
29+
}
30+
}
31+
}
32+

src/GitVersionCore/GitVersionCore.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@
166166
<Compile Include="SemanticVersion.cs" />
167167
<Compile Include="SemanticVersionBuildMetaData.cs" />
168168
<Compile Include="SemanticVersionPreReleaseTag.cs" />
169+
<Compile Include="BuildServers\TravisCI.cs" />
169170
</ItemGroup>
170171
<ItemGroup>
171172
<Content Include="FodyWeavers.xml">

src/GitVersionCore/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="Caseless.Fody" version="1.4.1" targetFramework="net40" developmentDependency="true" />
3+
<package id="Caseless.Fody" version="1.4.2" targetFramework="net40" developmentDependency="true" />
44
<package id="Fody" version="1.29.4" targetFramework="net40" developmentDependency="true" />
55
<package id="GitTools.Core" version="1.1.0-beta0001" targetFramework="net40" />
66
<package id="JetBrainsAnnotations.Fody" version="1.0.4.0" targetFramework="net4" developmentDependency="true" />

src/GitVersionExe.Tests/GitVersionHelper.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.IO;
44
using System.Text;
55
using GitTools;
6+
using GitVersion;
67

78
public static class GitVersionHelper
89
{
@@ -36,8 +37,9 @@ static ExecutionResults ExecuteIn(ArgumentBuilder arguments)
3637
var environmentalVariables =
3738
new[]
3839
{
39-
new KeyValuePair<string, string>("TEAMCITY_VERSION", arguments.IsTeamCity ? "8.0.0" : null),
40-
new KeyValuePair<string, string>("APPVEYOR", null)
40+
new KeyValuePair<string, string>(TeamCity.EnvironmentVariableName, arguments.IsTeamCity ? "8.0.0" : null),
41+
new KeyValuePair<string, string>(AppVeyor.EnvironmentVariableName, null),
42+
new KeyValuePair<string, string>(TravisCI.EnvironmentVariableName, null),
4143
};
4244

4345
var exitCode = -1;

src/GitVersionExe/GitVersionExe.csproj

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -135,19 +135,34 @@
135135
]]></Code>
136136
</Task>
137137
</UsingTask>
138-
<Target Name="AfterBuild" DependsOnTargets="Clean" Condition="$(NCrunch)=='' And '$(OS)' != 'Unix'">
138+
<Target Name="AfterBuild" DependsOnTargets="Clean" Condition="$(NCrunch)==''">
139139
<MakeDir Directories="$(TargetDir)ILMergeTemp\" />
140140
<PropertyGroup>
141141
<Runtime Condition="'$(OS)'=='Unix'">mono</Runtime>
142142
</PropertyGroup>
143143
<!-- Copy target file so that our temporary file gets the correct permissions -->
144144
<Copy SourceFiles="$(TargetPath)" DestinationFolder="$(TargetDir)ILMergeTemp\" />
145-
<Exec Command="$(Runtime) &quot;$(SolutionDir)packages\ILRepack.2.0.10\tools\ILRepack.exe&quot; /allowDup /keyfile:&quot;$(SolutionDir)key.snk&quot; /out:&quot;$(TargetDir)ILMergeTemp\$(TargetFileName)&quot; &quot;$(TargetPath)&quot; &quot;$(TargetDir)GitVersionCore.dll&quot; &quot;$(TargetDir)GitTools.Core.dll&quot; &quot;$(TargetDir)LibGit2Sharp.dll&quot; &quot;$(TargetDir)YamlDotNet.dll&quot; /target:exe /targetplatform:&quot;v4,$(FrameworkPathOverride)&quot; /ndebug /internalize " />
146145
<ItemGroup>
147146
<TempFiles Include="$(TargetDir)ILMergeTemp\*.*" />
148147
<NativeBinaries Include="$(TargetDir)lib\**\*.*" />
149148
<WindowsBinaries Include="$(TargetDir)lib\**\*.dll" />
149+
<LibGit2SharpFiles Include="$(TargetDir)LibGit2Sharp.*" Exclude="$(TargetDir)LibGit2Sharp.xml" />
150150
</ItemGroup>
151+
152+
<!-- Repack without LibGit2Sharp for NugetCommandLineBuild -->
153+
<Exec Command="$(Runtime) &quot;$(SolutionDir)packages\ILRepack.2.0.10\tools\ILRepack.exe&quot; /allowDup /keyfile:&quot;$(SolutionDir)key.snk&quot; /out:&quot;$(TargetDir)ILMergeTemp\$(TargetFileName)&quot; &quot;$(TargetPath)&quot; &quot;$(TargetDir)GitVersionCore.dll&quot; &quot;$(TargetDir)GitTools.Core.dll&quot; &quot;$(TargetDir)YamlDotNet.dll&quot; /target:exe /targetplatform:&quot;v4,$(FrameworkPathOverride)&quot; /ndebug /internalize " />
154+
<!-- NugetCommandLineBuild -->
155+
<MakeDir Directories="$(BuildDir)NuGetCommandLineBuild" />
156+
<Copy SourceFiles="@(NativeBinaries)" DestinationFiles="@(NativeBinaries->'$(BuildDir)NuGetCommandLineBuild\tools\lib\%(RecursiveDir)%(Filename)%(Extension)')" />
157+
<Copy SourceFiles="@(LibGit2SharpFiles)" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" />
158+
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" Condition="Exists('$(OutputPath)GitVersion.pdb')" />
159+
<Copy SourceFiles="$(OutputPath)GitVersion.exe.mdb" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" Condition="Exists('$(OutputPath)GitVersion.exe.mdb')" />
160+
<Copy SourceFiles="$(OutputPath)ILMergeTemp\GitVersion.exe" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" />
161+
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersion.CommandLine.nuspec" DestinationFolder="$(BuildDir)NuGetCommandLineBuild" />
162+
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(BuildDir)NuGetCommandLineBuild" MetadataAssembly="$(OutputPath)ILMergeTemp\GitVersion.exe" Version="$(GitVersion_NuGetVersion)" />
163+
164+
<!-- Repack with LibGit2Sharp for NugetCommandLineBuild -->
165+
<Exec Command="$(Runtime) &quot;$(SolutionDir)packages\ILRepack.2.0.10\tools\ILRepack.exe&quot; /allowDup /keyfile:&quot;$(SolutionDir)key.snk&quot; /out:&quot;$(TargetDir)ILMergeTemp\$(TargetFileName)&quot; &quot;$(TargetPath)&quot; &quot;$(TargetDir)GitVersionCore.dll&quot; &quot;$(TargetDir)GitTools.Core.dll&quot; &quot;$(TargetDir)LibGit2Sharp.dll&quot; &quot;$(TargetDir)YamlDotNet.dll&quot; /target:exe /targetplatform:&quot;v4,$(FrameworkPathOverride)&quot; /ndebug /internalize " />
151166
<!-- NugetExeBuild -->
152167
<MakeDir Directories="$(BuildDir)NuGetExeBuild" />
153168
<Copy SourceFiles="@(NativeBinaries)" DestinationFiles="@(NativeBinaries->'$(BuildDir)NuGetExeBuild\tools\lib\%(RecursiveDir)%(Filename)%(Extension)')" />
@@ -158,14 +173,7 @@
158173
<Copy SourceFiles="$(ProjectDir)NugetAssets\chocolateyUninstall.ps1" DestinationFolder="$(BuildDir)NuGetExeBuild\tools" />
159174
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersion.Portable.nuspec" DestinationFolder="$(BuildDir)NuGetExeBuild" />
160175
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(BuildDir)NuGetExeBuild" MetadataAssembly="$(OutputPath)ILMergeTemp\GitVersion.exe" Version="$(GitVersion_NuGetVersion)" />
161-
<!-- NugetCommandLineBuild -->
162-
<MakeDir Directories="$(BuildDir)NuGetCommandLineBuild" />
163-
<Copy SourceFiles="@(NativeBinaries)" DestinationFiles="@(NativeBinaries->'$(BuildDir)NuGetCommandLineBuild\tools\lib\%(RecursiveDir)%(Filename)%(Extension)')" />
164-
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" Condition="Exists('$(OutputPath)GitVersion.pdb')" />
165-
<Copy SourceFiles="$(OutputPath)GitVersion.exe.mdb" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" Condition="Exists('$(OutputPath)GitVersion.exe.mdb')" />
166-
<Copy SourceFiles="$(OutputPath)ILMergeTemp\GitVersion.exe" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" />
167-
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersion.CommandLine.nuspec" DestinationFolder="$(BuildDir)NuGetCommandLineBuild" />
168-
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(BuildDir)NuGetCommandLineBuild" MetadataAssembly="$(OutputPath)ILMergeTemp\GitVersion.exe" Version="$(GitVersion_NuGetVersion)" />
176+
169177
<!-- TfsBuildTask -->
170178
<Copy SourceFiles="@(NativeBinaries)" DestinationFiles="@(NativeBinaries->'$(BuildDir)GitVersionTfsTaskBuild\GitVersionTask\lib\%(RecursiveDir)%(Filename)%(Extension)')" />
171179
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)GitVersionTfsTaskBuild" Condition="Exists('$(OutputPath)GitVersion.pdb')" />
@@ -175,13 +183,14 @@
175183
<Copy SourceFiles="$(SolutionDir)GitVersionTfsTask\builds.png" DestinationFolder="$(BuildDir)GitVersionTfsTaskBuild\img" />
176184
<Copy SourceFiles="$(SolutionDir)GitVersionTfsTask\build-task.png" DestinationFolder="$(BuildDir)GitVersionTfsTaskBuild\img" />
177185
<Copy SourceFiles="$(OutputPath)ILMergeTemp\GitVersion.exe" DestinationFolder="$(BuildDir)GitVersionTfsTaskBuild\GitVersionTask" />
178-
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)GitVersionTfsTaskBuild\GitVersionTask" />
186+
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)GitVersionTfsTaskBuild\GitVersionTask" Condition="Exists('$(OutputPath)GitVersion.pdb')" />
179187
<Copy SourceFiles="$(SolutionDir)GitVersionTfsTask\icon.png" DestinationFolder="$(BuildDir)GitVersionTfsTaskBuild\GitVersionTask" />
180188
<Copy SourceFiles="$(SolutionDir)GitVersionTfsTask\task.json" DestinationFolder="$(BuildDir)GitVersionTfsTaskBuild\GitVersionTask" />
181189
<Copy SourceFiles="$(SolutionDir)GitVersionTfsTask\GitVersion.ps1" DestinationFolder="$(BuildDir)GitVersionTfsTaskBuild\GitVersionTask" />
182190
<ReplaceFileText InputFilename="$(BuildDir)GitVersionTfsTaskBuild\manifest.json" OutputFilename="$(BuildDir)GitVersionTfsTaskBuild\manifest.json" MatchExpression="\$version\$" ReplacementText="$(GitVersion_SemVer)" Condition="'$(GitVersion_SemVer)' != ''" />
183191
<Exec Command="powershell -ExecutionPolicy RemoteSigned -NoProfile &quot;$(SolutionDir)GitVersionTfsTask\Update-GitVersionTfsTaskVersion.ps1 $(BuildDir)GitVersionTfsTaskBuild\GitVersionTask\task.json $(GitVersion_Major) $(GitVersion_Minor) $(GitVersion_Patch)&quot;" WorkingDirectory="$(BuildDir)" Condition="'$(GitVersion_SemVer)' != ''" />
184192
<Exec Command="powershell -ExecutionPolicy RemoteSigned -NoProfile &quot;$(SolutionDir)GitVersionTfsTask\Create-Vsix.ps1 $(BuildDir)GitVersionTfsTaskBuild&quot;" Condition="'$(GitVersion_SemVer)' != ''" />
193+
185194
<!-- Gem -->
186195
<MakeDir Directories="$(BuildDir)GemBuild" />
187196
<!-- Gem can only treat files it knows about, so it throws an error for .so and .dylib files when building on Windows -->
@@ -205,6 +214,7 @@
205214
</PropertyGroup>
206215
<ReplaceFileText InputFilename="$(BuildDir)GemBuild\gitversion.gemspec" OutputFilename="$(BuildDir)GemBuild\gitversion.gemspec" MatchExpression="\$version\$" ReplacementText="$(GemVersion)" Condition="'$(GitVersion_SemVer)' != ''" />
207216
<Exec Command="gem build gitversion.gemspec" ContinueOnError="True" WorkingDirectory="$(BuildDir)GemBuild" Condition="'$(GitVersion_SemVer)' != ''" />
217+
208218
<!-- Cleanup -->
209219
<RemoveDir Directories="$(TargetDir)ILMergeTemp\" />
210220
</Target>

src/GitVersionExe/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="Caseless.Fody" version="1.4.1" targetFramework="net40" developmentDependency="true" />
3+
<package id="Caseless.Fody" version="1.4.2" targetFramework="net40" developmentDependency="true" />
44
<package id="Fody" version="1.29.4" targetFramework="net40" developmentDependency="true" />
55
<package id="GitTools.Core" version="1.1.0-beta0001" targetFramework="net40" />
66
<package id="ILRepack" version="2.0.10" targetFramework="net40" />

src/GitVersionTask/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="Caseless.Fody" version="1.4.1" targetFramework="net40" developmentDependency="true" />
3+
<package id="Caseless.Fody" version="1.4.2" targetFramework="net40" developmentDependency="true" />
44
<package id="Fody" version="1.29.4" targetFramework="net40" developmentDependency="true" />
55
<package id="GitTools.Core" version="1.1.0-beta0001" targetFramework="net40" />
66
<package id="ILRepack" version="2.0.10" targetFramework="net40" />

0 commit comments

Comments
 (0)