Skip to content

Commit 350b3b5

Browse files
committed
split nuget and docs release build task in 2 for prerelease
1 parent 123bef8 commit 350b3b5

File tree

1 file changed

+30
-4
lines changed

1 file changed

+30
-4
lines changed

build.fsx

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,21 @@ let watchDocsPrerelease = BuildTask.create "WatchDocsPrerelease" [setPrereleaseT
247247
"./"
248248
}
249249

250-
let releaseDocs = BuildTask.create "ReleaseDocs" [buildDocs.IfNeeded; buildDocsPrerelease.IfNeeded] {
251-
let msg = sprintf "release docs for version %s?" (if isPrerelease then prereleaseTag else stableVersionTag)
250+
let releaseDocs = BuildTask.create "ReleaseDocs" [buildDocs] {
251+
let msg = sprintf "release docs for version %s?" stableVersionTag
252+
if promptYesNo msg then
253+
Shell.cleanDir "temp"
254+
Git.CommandHelper.runSimpleGitCommand "." (sprintf "clone %s temp/gh-pages --depth 1 -b gh-pages" projectRepo) |> ignore
255+
Shell.copyRecursive "output" "temp/gh-pages" true |> printfn "%A"
256+
Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" "add ." |> printfn "%s"
257+
let cmd = sprintf """commit -a -m "Update generated documentation for version %s""" release.NugetVersion
258+
Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" cmd |> printfn "%s"
259+
Git.Branches.push "temp/gh-pages"
260+
else failwith "aborted"
261+
}
262+
263+
let releaseDocsPrerelease = BuildTask.create "releaseDocsPrerelease" [buildDocsPrerelease] {
264+
let msg = sprintf "release docs for version %s?" prereleaseTag
252265
if promptYesNo msg then
253266
Shell.cleanDir "temp"
254267
Git.CommandHelper.runSimpleGitCommand "." (sprintf "clone %s temp/gh-pages --depth 1 -b gh-pages" projectRepo) |> ignore
@@ -295,7 +308,20 @@ let createPrereleaseTag = BuildTask.create "CreatePrereleaseTag" [setPrereleaseT
295308
failwith "aborted"
296309
}
297310

298-
let publishNuget = BuildTask.create "PublishNuget" [clean; build; copyBinaries; runTests; pack.IfNeeded; packPrerelease.IfNeeded] {
311+
let publishNuget = BuildTask.create "PublishNuget" [clean; build; copyBinaries; runTests; pack] {
312+
let targets = (!! (sprintf "%s/*.*pkg" pkgDir ))
313+
for target in targets do printfn "%A" target
314+
let msg = sprintf "release package with version %s?" (if isPrerelease then prereleaseTag else stableVersionTag)
315+
if promptYesNo msg then
316+
let source = "https://api.nuget.org/v3/index.json"
317+
let apikey = Environment.environVar "NUGET_KEY"
318+
for artifact in targets do
319+
let result = DotNet.exec id "nuget" (sprintf "push -s %s -k %s %s --skip-duplicate" source apikey artifact)
320+
if not result.OK then failwith "failed to push packages"
321+
else failwith "aborted"
322+
}
323+
324+
let publishNugetPrerelease = BuildTask.create "PublishNugetPrerelease" [clean; build; copyBinaries; runTests; packPrerelease] {
299325
let targets = (!! (sprintf "%s/*.*pkg" pkgDir ))
300326
for target in targets do printfn "%A" target
301327
let msg = sprintf "release package with version %s?" (if isPrerelease then prereleaseTag else stableVersionTag)
@@ -311,7 +337,7 @@ let publishNuget = BuildTask.create "PublishNuget" [clean; build; copyBinaries;
311337

312338
let _release = BuildTask.createEmpty "Release" [clean; build; copyBinaries; runTests; pack; buildDocs; createTag; publishNuget; releaseDocs]
313339

314-
let _releasePreview = BuildTask.createEmpty "ReleasePreview" [setPrereleaseTag; clean; build; copyBinaries; runTests; packPrerelease; buildDocsPrerelease; createPrereleaseTag; publishNuget; releaseDocs]
340+
let _releasePreview = BuildTask.createEmpty "ReleasePreview" [setPrereleaseTag; clean; build; copyBinaries; runTests; packPrerelease; buildDocsPrerelease; createPrereleaseTag; publishNugetPrerelease; releaseDocs]
315341

316342
let _all = BuildTask.createEmpty "All" [clean; build; copyBinaries; runTests (*runTestsWithCodeCov*); pack; buildDocs]
317343

0 commit comments

Comments
 (0)