Skip to content

Commit b9de08e

Browse files
committed
added build support for the reference docs.
1 parent bcff046 commit b9de08e

File tree

1 file changed

+55
-18
lines changed

1 file changed

+55
-18
lines changed

build/build.fsx

Lines changed: 55 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,28 @@ let semVersion =
2323
| "" -> baseVersion
2424
| _ -> baseVersion + "-" + preRelease
2525

26+
let shortVersion = semVersion.Substring(0, 3) // this works assuming we don't have double digits
27+
2628
let baseDir = currentDirectory
2729
let buildDir = baseDir @@ "build"
30+
let landingDocsDir = baseDir @@ "docs" @@ "landing"
31+
let refDocsDir = baseDir @@ "docs" @@ "reference"
2832
let srcDir = baseDir @@ "src"
2933
let toolsDir = baseDir @@ "tools"
34+
3035
let artifactsDir = baseDir @@ "artifacts"
3136
let binDir = artifactsDir @@ "bin"
3237
let binDir45 = binDir @@ "net45"
3338
let testResultsDir = artifactsDir @@ "test_results"
34-
let docsDir = artifactsDir @@ "docs"
39+
let tempDir = artifactsDir @@ "tmp"
3540

3641
let slnFile =
3742
match isMono with
3843
| true -> srcDir @@ "CSharpDriver-Mono.sln"
3944
| false -> srcDir @@ "CSharpDriver.sln"
4045

4146
let asmFile = srcDir @@ "MongoDB.Shared" @@ "GlobalAssemblyInfo.cs"
42-
let docsFile = baseDir @@ "Docs" @@ "Api" @@ "CSharpDriverDocs.shfbproj"
47+
let apiDocsFile = baseDir @@ "Docs" @@ "Api" @@ "CSharpDriverDocs.shfbproj"
4348
let installerFile = baseDir @@ "Installer" @@ "CSharpDriverInstaller.wixproj"
4449
let versionFile = artifactsDir @@ "version.txt"
4550

@@ -55,8 +60,9 @@ let licenseFile = baseDir @@ "License.txt"
5560
let releaseNotesFile = baseDir @@ "Release Notes" @@ "Release Notes v" + baseVersion + ".md"
5661

5762
let versionArtifactFile = artifactsDir @@ "version.txt"
58-
let docsArtifactFile = artifactsDir @@ "CSharpDriver-" + semVersion + ".chm"
59-
let docsArtifactZipFile = artifactsDir @@ "CSharpDriverDocs-" + semVersion + "-html.zip"
63+
let apiDocsArtifactFile = artifactsDir @@ "CSharpDriver-" + semVersion + ".chm"
64+
let apiDocsArtifactZipFile = artifactsDir @@ "ApiDocs-" + semVersion + "-html.zip"
65+
let refDocsArtifactZipFile = artifactsDir @@ "RefDocs-" + semVersion + "-html.zip"
6066
let zipArtifactFile = artifactsDir @@ "CSharpDriver-" + semVersion + ".zip"
6167

6268
MSBuildDefaults <- { MSBuildDefaults with Verbosity = Some(Minimal) }
@@ -131,40 +137,66 @@ Target "Test" (fun _ ->
131137
})
132138
)
133139

134-
Target "Docs" (fun _ ->
135-
DeleteFile docsArtifactFile
136-
DeleteFile docsArtifactZipFile
137-
ensureDirectory docsDir
138-
CleanDir docsDir
140+
Target "RefDocs" (fun _ ->
141+
DeleteFile refDocsArtifactZipFile
142+
ensureDirectory tempDir
143+
CleanDir tempDir
144+
145+
let landingResult =
146+
ExecProcess (fun info ->
147+
info.FileName <- "hugo.exe"
148+
info.WorkingDirectory <- landingDocsDir
149+
)(TimeSpan.FromMinutes 1.0)
150+
151+
let refResult =
152+
ExecProcess (fun info ->
153+
info.FileName <- "hugo.exe"
154+
info.WorkingDirectory <- refDocsDir
155+
)(TimeSpan.FromMinutes 1.0)
156+
157+
CopyDir tempDir (landingDocsDir @@ "public") (fun _ -> true)
158+
CopyDir (tempDir @@ shortVersion) (refDocsDir @@ "public") (fun _ -> true)
159+
160+
!! (tempDir @@ "**/**.*")
161+
|> CreateZip tempDir refDocsArtifactZipFile "" DefaultZipLevel false
162+
163+
DeleteDir tempDir
164+
)
165+
166+
Target "ApiDocs" (fun _ ->
167+
DeleteFile apiDocsArtifactFile
168+
DeleteFile apiDocsArtifactZipFile
169+
ensureDirectory tempDir
170+
CleanDir tempDir
139171

140172
let preliminary =
141173
match preRelease with
142174
| "" -> "False"
143175
| _ -> "True"
144176

145177
let properties = ["Configuration", config
146-
"OutputPath", docsDir
178+
"OutputPath", tempDir
147179
"CleanIntermediate", "True"
148180
"Preliminary", preliminary
149181
"HelpFileVersion", version]
150182

151-
[docsFile]
183+
[apiDocsFile]
152184
|> MSBuild binDir45 "" properties
153185
|> Log "Docs: "
154186

155-
Rename docsArtifactFile (docsDir @@ "CSharpDriverDocs.chm")
156-
Rename (docsDir @@ "index.html") (docsDir @@ "Index.html")
187+
Rename apiDocsArtifactFile (tempDir @@ "CSharpDriverDocs.chm")
188+
Rename (tempDir @@ "index.html") (tempDir @@ "Index.html")
157189

158-
!! (docsDir @@ "**/**.*")
159-
|> CreateZip docsDir docsArtifactZipFile "" DefaultZipLevel false
190+
!! (tempDir @@ "**/**.*")
191+
|> CreateZip tempDir apiDocsArtifactZipFile "" DefaultZipLevel false
160192

161-
DeleteDir docsDir
193+
DeleteDir tempDir
162194
)
163195

164196
Target "Zip" (fun _ ->
165197
DeleteFile zipArtifactFile
166198

167-
checkFileExists docsArtifactFile
199+
checkFileExists apiDocsArtifactFile
168200
checkFileExists licenseFile
169201
checkFileExists releaseNotesFile
170202

@@ -183,7 +215,7 @@ Target "Zip" (fun _ ->
183215
binDir45 @@ "MongoDB.Driver.Legacy.xml"
184216
licenseFile
185217
releaseNotesFile
186-
docsArtifactFile ]
218+
apiDocsArtifactFile ]
187219

188220
files
189221
|> CreateZip artifactsDir zipArtifactFile "" DefaultZipLevel true
@@ -238,13 +270,18 @@ FinalTarget "Teardown" (fun _ ->
238270

239271

240272
Target "NoOp" DoNothing
273+
Target "Docs" DoNothing
241274
Target "Package" DoNothing
242275
Target "Publish" DoNothing
243276

244277
"Clean"
245278
==> "AssemblyInfo"
246279
==> "Build"
247280

281+
"RefDocs"
282+
==> "ApiDocs"
283+
==> "Docs"
284+
248285
"Docs"
249286
==> "Zip"
250287
==> "NuGetPack"

0 commit comments

Comments
 (0)