Skip to content

Commit 316b9fa

Browse files
committed
CSHARP-1851: Refactor doc tasks.
1 parent 719587f commit 316b9fa

File tree

1 file changed

+41
-27
lines changed

1 file changed

+41
-27
lines changed

build.cake

Lines changed: 41 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,23 @@ using System.Text.RegularExpressions;
1010
var target = Argument("target", "Default");
1111
var configuration = Argument("configuration", "Release");
1212

13+
var gitVersion = GitVersion();
14+
1315
var solutionDirectory = MakeAbsolute(Directory("./"));
1416
var artifactsDirectory = solutionDirectory.Combine("artifacts");
1517
var artifactsBinDirectory = artifactsDirectory.Combine("bin");
1618
var artifactsBinNet45Directory = artifactsBinDirectory.Combine("net45");
1719
var artifactsBinNetStandard15Directory = artifactsBinDirectory.Combine("netstandard1.5");
20+
var artifactsDocsDirectory = artifactsDirectory.Combine("docs");
21+
var artifactsDocsApiDocsDirectory = artifactsDocsDirectory.Combine("ApiDocs-" + gitVersion.SemVer);
22+
var artifactsDocsRefDocsDirectory = artifactsDocsDirectory.Combine("RefDocs-" + gitVersion.SemVer);
1823
var artifactsPackagesDirectory = artifactsDirectory.Combine("packages");
1924
var docsDirectory = solutionDirectory.Combine("Docs");
2025
var docsApiDirectory = docsDirectory.Combine("Api");
21-
var docsApiOutputDirectory = docsApiDirectory.Combine("output");
2226
var srcDirectory = solutionDirectory.Combine("src");
2327
var testsDirectory = solutionDirectory.Combine("tests");
2428
var toolsDirectory = solutionDirectory.Combine("Tools");
29+
var toolsHugoDirectory = toolsDirectory.Combine("Hugo");
2530

2631
var solutionFile = solutionDirectory.CombineWithFilePath("CSharpDriver.sln");
2732
var srcProjectNames = new[]
@@ -33,8 +38,6 @@ var srcProjectNames = new[]
3338
"MongoDB.Driver.GridFS"
3439
};
3540

36-
var gitVersion = GitVersion();
37-
3841
Task("Default")
3942
.IsDependentOn("TestAndPackage");
4043

@@ -131,7 +134,6 @@ Task("TestNetStandard15")
131134
.IsDependentOn("BuildNetStandard15")
132135
.Does(() =>
133136
{
134-
var testsDirectory = solutionDirectory.Combine("tests");
135137
var testProjectNames = new []
136138
{
137139
"MongoDB.Bson.Tests.Dotnet",
@@ -162,66 +164,78 @@ Task("ApiDocs")
162164
.IsDependentOn("BuildNet45")
163165
.Does(() =>
164166
{
165-
EnsureDirectoryExists(docsApiOutputDirectory);
166-
CleanDirectory(docsApiOutputDirectory);
167+
EnsureDirectoryExists(artifactsDocsApiDocsDirectory);
168+
CleanDirectory(artifactsDocsApiDocsDirectory);
167169

168170
var shfbprojFile = docsApiDirectory.CombineWithFilePath("CSharpDriverDocs.shfbproj");
169171
var preliminary = false; // TODO: compute
170172
MSBuild(shfbprojFile, new MSBuildSettings
171173
{
172174
Configuration = "Release"
173175
}
174-
.WithProperty("OutputPath", docsApiOutputDirectory.ToString())
176+
.WithProperty("OutputPath", artifactsDocsApiDocsDirectory.ToString())
175177
.WithProperty("CleanIntermediate", "True")
176178
.WithProperty("Preliminary", preliminary ? "True" : "False")
177179
.WithProperty("HelpFileVersion", gitVersion.MajorMinorPatch)
178180
);
179181

180-
// DeleteDirectory(docsApiOutputDirectory, recursive: true);
182+
var lowerCaseIndexFile = artifactsDocsApiDocsDirectory.CombineWithFilePath("index.html");
183+
var upperCaseIndexFile = artifactsDocsApiDocsDirectory.CombineWithFilePath("Index.html");
184+
MoveFile(lowerCaseIndexFile, upperCaseIndexFile);
185+
186+
var apiDocsZipFileName = artifactsDocsApiDocsDirectory.GetDirectoryName() + "-html.zip";
187+
var apiDocsZipFile = artifactsDocsDirectory.CombineWithFilePath(apiDocsZipFileName);
188+
Console.WriteLine(apiDocsZipFile.FullPath);
189+
Zip(artifactsDocsApiDocsDirectory, apiDocsZipFile);
190+
191+
var chmFile = artifactsDocsApiDocsDirectory.CombineWithFilePath("CSharpDriverDocs.chm");
192+
var artifactsDocsChmFile = artifactsDocsDirectory.CombineWithFilePath("CSharpDriverDocs.chm");
193+
CopyFile(chmFile, artifactsDocsChmFile);
194+
195+
DeleteDirectory(artifactsDocsApiDocsDirectory, recursive: true);
181196
});
182197

183198
Task("RefDocs")
184199
.Does(() =>
185200
{
186-
var hugoDirectory = toolsDirectory.Combine("Hugo");
187-
EnsureDirectoryExists(hugoDirectory);
188-
CleanDirectory(hugoDirectory);
201+
EnsureDirectoryExists(toolsHugoDirectory);
202+
CleanDirectory(toolsHugoDirectory);
189203

190204
var url = "https://github.com/spf13/hugo/releases/download/v0.13/hugo_0.13_windows_amd64.zip";
191-
var zipFile = hugoDirectory.CombineWithFilePath("hugo_0.13_windows_amd64.zip");
192-
DownloadFile(url, zipFile);
193-
Unzip(zipFile, hugoDirectory);
194-
var hugoExe = hugoDirectory.CombineWithFilePath("hugo_0.13_windows_amd64.exe");
205+
var hugoZipFile = toolsHugoDirectory.CombineWithFilePath("hugo_0.13_windows_amd64.zip");
206+
DownloadFile(url, hugoZipFile);
207+
Unzip(hugoZipFile, toolsHugoDirectory);
208+
var hugoExe = toolsHugoDirectory.CombineWithFilePath("hugo_0.13_windows_amd64.exe");
195209

196-
var landingDirectory = solutionDirectory.Combine("docs").Combine("landing");
210+
var landingDirectory = docsDirectory.Combine("landing");
197211
var processSettings = new ProcessSettings
198212
{
199213
WorkingDirectory = landingDirectory
200214
};
201215
StartProcess(hugoExe, processSettings);
202216

203-
var referenceDirectory = solutionDirectory.Combine("docs").Combine("reference");
217+
var referenceDirectory = docsDirectory.Combine("reference");
204218
processSettings = new ProcessSettings
205219
{
206220
WorkingDirectory = referenceDirectory
207221
};
208222
StartProcess(hugoExe, processSettings);
209223

210-
var tempDirectory = artifactsDirectory.Combine("RefDocs");
211-
EnsureDirectoryExists(tempDirectory);
212-
CleanDirectory(tempDirectory);
224+
EnsureDirectoryExists(artifactsDocsRefDocsDirectory);
225+
CleanDirectory(artifactsDocsRefDocsDirectory);
213226

214227
var landingPublicDirectory = landingDirectory.Combine("public");
215-
CopyDirectory(landingPublicDirectory, tempDirectory);
228+
CopyDirectory(landingPublicDirectory, artifactsDocsRefDocsDirectory);
216229

217230
var referencePublicDirectory = referenceDirectory.Combine("public");
218-
var referencePublicVersionDirectory = tempDirectory.Combine(gitVersion.Major + "." + gitVersion.Minor);
219-
CopyDirectory(referencePublicDirectory, referencePublicVersionDirectory);
231+
var artifactsReferencePublicDirectory = artifactsDocsRefDocsDirectory.Combine(gitVersion.Major + "." + gitVersion.Minor);
232+
CopyDirectory(referencePublicDirectory, artifactsReferencePublicDirectory);
220233

221-
var referenceDocsZipFile = artifactsDirectory.CombineWithFilePath("RefDocs-" + gitVersion.SemVer + "-html.zip");
222-
Zip(tempDirectory, referenceDocsZipFile);
234+
var refDocsZipFileName = artifactsDocsRefDocsDirectory.GetDirectoryName() + "-html.zip";
235+
var refDocsZipFile = artifactsDocsDirectory.CombineWithFilePath(refDocsZipFileName);
236+
Zip(artifactsDocsRefDocsDirectory, refDocsZipFile);
223237

224-
DeleteDirectory(tempDirectory, recursive: true);
238+
DeleteDirectory(artifactsDocsRefDocsDirectory, recursive: true);
225239
});
226240

227241
Task("Package")
@@ -248,7 +262,7 @@ Task("PackageReleaseZipFile")
248262
var stagingNetStandard15Directory = stagingDirectory.Combine("netstandard1.5");
249263
CopyDirectory(artifactsBinNetStandard15Directory, stagingNetStandard15Directory);
250264

251-
var chmFile = docsApiOutputDirectory.CombineWithFilePath("CSharpDriverDocs.chm");
265+
var chmFile = artifactsDocsDirectory.CombineWithFilePath("CSharpDriverDocs.chm");
252266
var stagingChmFileName = stagingDirectoryName + ".chm";
253267
var stagingChmFile = stagingDirectory.CombineWithFilePath(stagingChmFileName);
254268
CopyFile(chmFile, stagingChmFile);

0 commit comments

Comments
 (0)