@@ -2,29 +2,7 @@ Task("Pack-Prepare")
2
2
. IsDependentOn ( "Validate-Version" )
3
3
. Does < BuildParameters > ( ( parameters ) =>
4
4
{
5
- // publish single file for all native runtimes (self contained)
6
- foreach ( var runtime in parameters . NativeRuntimes )
7
- {
8
- var runtimeName = runtime . Value ;
9
-
10
- var settings = new DotNetCorePublishSettings
11
- {
12
- Framework = parameters . CoreFxVersion31 ,
13
- Runtime = runtimeName ,
14
- NoRestore = false ,
15
- Configuration = parameters . Configuration ,
16
- OutputDirectory = parameters . Paths . Directories . Native . Combine ( runtimeName ) ,
17
- MSBuildSettings = parameters . MSBuildSettings ,
18
- } ;
19
-
20
- settings . ArgumentCustomization =
21
- arg => arg
22
- . Append ( "/p:PublishSingleFile=true" )
23
- . Append ( "/p:PublishTrimmed=true" )
24
- . Append ( "/p:IncludeSymbolsInSingleFile=true" ) ;
25
-
26
- DotNetCorePublish ( "./src/GitVersionExe/GitVersionExe.csproj" , settings ) ;
27
- }
5
+ PackPrepareNative ( Context , parameters ) ;
28
6
29
7
var frameworks = new [ ] { parameters . CoreFxVersion21 , parameters . FullFxVersion472 } ;
30
8
@@ -132,11 +110,46 @@ Task("Zip-Files")
132
110
. IsDependentOn ( "Pack-Prepare" )
133
111
. Does < BuildParameters > ( ( parameters ) =>
134
112
{
135
- foreach ( var runtime in parameters . NativeRuntimes )
136
- {
137
- var sourceDir = parameters . Paths . Directories . Native . Combine ( runtime . Value ) ;
138
- var fileName = $ "gitversion-{ runtime . Key } -{ parameters . Version . SemVersion } .tar.gz". ToLower ( ) ;
139
- var tarFile = parameters . Paths . Directories . Artifacts . CombineWithFilePath ( fileName ) ;
140
- GZipCompress ( sourceDir , tarFile ) ;
141
- }
113
+ var platform = Context . Environment . Platform . Family . ToString ( ) . ToLower ( ) ;
114
+
115
+ var sourceDir = parameters . Paths . Directories . Native . Combine ( platform ) ;
116
+ var targetDir = parameters . Paths . Directories . ArtifactsRoot . Combine ( "native" ) ;
117
+ EnsureDirectoryExists ( targetDir ) ;
118
+ var fileName = $ "gitversion-{ platform } -{ parameters . Version . SemVersion } .tar.gz". ToLower ( ) ;
119
+ var tarFile = targetDir . CombineWithFilePath ( fileName ) ;
120
+ GZipCompress ( sourceDir , tarFile ) ;
142
121
} ) ;
122
+
123
+ void PackPrepareNative ( ICakeContext context , BuildParameters parameters )
124
+ {
125
+ // publish single file for all native runtimes (self contained)
126
+ var platform = Context . Environment . Platform . Family ;
127
+ var runtime = parameters . NativeRuntimes [ platform ] ;
128
+ var outputPath = parameters . Paths . Directories . Native . Combine ( platform . ToString ( ) . ToLower ( ) ) ;
129
+
130
+ var settings = new DotNetCorePublishSettings
131
+ {
132
+ Framework = parameters . CoreFxVersion31 ,
133
+ Runtime = runtime ,
134
+ NoRestore = false ,
135
+ Configuration = parameters . Configuration ,
136
+ OutputDirectory = outputPath ,
137
+ MSBuildSettings = parameters . MSBuildSettings ,
138
+ } ;
139
+
140
+ settings . ArgumentCustomization =
141
+ arg => arg
142
+ . Append ( "/p:PublishSingleFile=true" )
143
+ . Append ( "/p:PublishTrimmed=true" )
144
+ . Append ( "/p:IncludeSymbolsInSingleFile=true" ) ;
145
+
146
+ context . DotNetCorePublish ( "./src/GitVersionExe/GitVersionExe.csproj" , settings ) ;
147
+
148
+ context . Information ( "Validating native lib:" ) ;
149
+
150
+ var nativeExe = outputPath . CombineWithFilePath ( IsRunningOnWindows ( ) ? "gitversion.exe" : "gitversion" ) ;
151
+ var output = context . ExecuteCommand ( nativeExe , "/showvariable FullSemver" ) ;
152
+ var outputStr = string . Concat ( output ) ;
153
+
154
+ Assert . Equal ( parameters . Version . GitVersion . FullSemVer , outputStr ) ;
155
+ }
0 commit comments