@@ -58,8 +58,8 @@ Target "Clean" (fun _ ->
5858)
5959
6060Target " AssemblyInfo" ( fun _ ->
61- XmlPokeInnerText " ./src/common. props" " //Project/PropertyGroup/VersionPrefix" releaseNotes.AssemblyVersion
62- XmlPokeInnerText " ./src/common .props" " //Project/PropertyGroup/PackageReleaseNotes" ( releaseNotes.Notes |> String.concat " \n " )
61+ XmlPokeInnerText " ./src/Directory.Build. props" " //Project/PropertyGroup/VersionPrefix" releaseNotes.AssemblyVersion
62+ XmlPokeInnerText " ./src/Directory.Build .props" " //Project/PropertyGroup/PackageReleaseNotes" ( releaseNotes.Notes |> String.concat " \n " )
6363)
6464
6565Target " Build" ( fun _ ->
@@ -203,45 +203,48 @@ Target "CreateNuget" (fun _ ->
203203 let projects = !! " src/**/*.csproj"
204204 -- " src/**/*Tests.csproj" // Don't publish unit tests
205205 -- " src/**/*Tests*.csproj"
206+ -- " src/**/Examples/**/*.csproj" // Don't publish samples
206207
207208 let runSingleProject project =
208209 DotNetCli.Pack
209210 ( fun p ->
210211 { p with
211212 Project = project
212213 Configuration = configuration
213- AdditionalArgs = [ " --include-symbols --no-build " ]
214+ AdditionalArgs = [ " --no-build -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg " ]
214215 VersionSuffix = overrideVersionSuffix project
215- OutputPath = outputNuGet })
216+ OutputPath = " \" " + outputNuGet + " \" " })
216217
217218 projects |> Seq.iter ( runSingleProject)
218219)
219220
220221Target " PublishNuget" ( fun _ ->
221- let projects = !! " ./bin/nuget/*.nupkg" -- " ./bin/nuget/*.symbols.nupkg"
222- let apiKey = getBuildParamOrDefault " nugetkey" " "
223- let source = getBuildParamOrDefault " nugetpublishurl" " "
224- let symbolSource = getBuildParamOrDefault " symbolspublishurl" " "
225- let shouldPublishSymbolsPackages = not ( symbolSource = " " )
226-
227- if ( not ( source = " " ) && not ( apiKey = " " ) && shouldPublishSymbolsPackages) then
228- let runSingleProject project =
229- DotNetCli.RunCommand
230- ( fun p ->
231- { p with
232- TimeOut = TimeSpan.FromMinutes 10. })
233- ( sprintf " nuget push %s --api-key %s --source %s --symbol-source %s " project apiKey source symbolSource)
234-
235- projects |> Seq.iter ( runSingleProject)
236- else if ( not ( source = " " ) && not ( apiKey = " " ) && not shouldPublishSymbolsPackages) then
237- let runSingleProject project =
238- DotNetCli.RunCommand
239- ( fun p ->
240- { p with
241- TimeOut = TimeSpan.FromMinutes 10. })
242- ( sprintf " nuget push %s --api-key %s --source %s " project apiKey source)
243-
244- projects |> Seq.iter ( runSingleProject)
222+ let shouldPushNugetPackages = hasBuildParam " nugetkey"
223+ if not shouldPushNugetPackages then ()
224+ else
225+ let apiKey = getBuildParam " nugetkey"
226+ let sourceUrl = getBuildParamOrDefault " nugetpublishurl" " https://api.nuget.org/v3/index.json"
227+
228+ let rec publishPackage retryLeft packageFile =
229+ tracefn " Pushing %s Attempts left: %d " ( FullName packageFile) retryLeft
230+ let tracing = ProcessHelper.enableProcessTracing
231+ try
232+ try
233+ ProcessHelper.enableProcessTracing <- false
234+ DotNetCli.RunCommand
235+ ( fun p ->
236+ { p with
237+ TimeOut = TimeSpan.FromMinutes 10. })
238+ ( sprintf " nuget push %s --api-key %s --source %s --no-service-endpoint" packageFile apiKey sourceUrl)
239+ with exn ->
240+ if ( retryLeft > 0 ) then ( publishPackage ( retryLeft-1 ) packageFile)
241+ finally
242+ ProcessHelper.enableProcessTracing <- tracing
243+
244+ printfn " Pushing nuget packages"
245+ let normalPackages = !! ( outputNuGet @@ " *.nupkg" ) |> Seq.sortBy( fun x -> x.ToLower())
246+ for package in normalPackages do
247+ publishPackage 3 package
245248)
246249
247250//--------------------------------------------------------------------------------
0 commit comments