Skip to content
This repository was archived by the owner on Jun 20, 2023. It is now read-only.

Commit 4d10fd6

Browse files
committed
Clean up build task dependency chains
1 parent 844ea1c commit 4d10fd6

File tree

1 file changed

+75
-52
lines changed

1 file changed

+75
-52
lines changed

build.cake

Lines changed: 75 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,9 @@ Task ("diff")
282282
"./output/AndroidSupport.api-diff.html");
283283
});
284284

285-
Task ("merge").IsDependentOn ("libs").Does (() =>
285+
Task ("merge")
286+
.IsDependentOn ("libs")
287+
.Does (() =>
286288
{
287289
if (FileExists ("./output/AndroidSupport.Merged.dll"))
288290
DeleteFile ("./output/AndroidSupport.Merged.dll");
@@ -300,29 +302,10 @@ Task ("merge").IsDependentOn ("libs").Does (() =>
300302
});
301303
});
302304

303-
304-
Task ("component-setup").Does (() =>
305-
{
306-
var yamls = GetFiles ("./**/component/component.template.yaml");
307-
308-
foreach (var yaml in yamls) {
309-
var manifestTxt = FileReadText (yaml)
310-
.Replace ("$nuget-version$", NUGET_VERSION)
311-
.Replace ("$version$", COMPONENT_VERSION);
312-
313-
var newYaml = yaml.GetDirectory ().CombineWithFilePath ("component.yaml");
314-
315-
FileWriteText (newYaml, manifestTxt);
316-
}
317-
});
318-
319-
320305
Task ("nuget-setup")
321-
.IsDependentOn ("externals")
322306
.IsDependentOn ("buildtasks")
323307
.Does (() =>
324308
{
325-
326309
Action<FilePath, FilePath> mergeTargetsFiles = (FilePath fromFile, FilePath intoFile) =>
327310
{
328311
// Load the doc to append to, and the doc to append
@@ -378,7 +361,6 @@ Task ("nuget-setup")
378361
mergeTargetsFiles (mergeFile, targetsFile);
379362
}
380363

381-
382364
// Transform all template.nuspec files
383365
var nuspecText = FileReadText(art.PathPrefix + art.ArtifactId + "/nuget/template.nuspec");
384366
//nuspecText = nuspecText.Replace ("$xbdversion$", XBD_VERSION);
@@ -404,36 +386,25 @@ Task ("nuget-setup")
404386
}
405387
});
406388

407-
Task ("nuget")
408-
.IsDependentOn ("libs")
409-
.IsDependentOn ("nuget-setup")
410-
.IsDependentOn ("nuget-base");
411-
412-
Task ("ci")
413-
.IsDependentOn ("diff")
414-
.IsDependentOn ("component");
415-
416-
Task ("component")
417-
.IsDependentOn ("libs")
418-
.IsDependentOn ("component-docs")
419-
.IsDependentOn ("component-setup")
420-
.IsDependentOn ("component-base");
421-
422-
Task ("clean")
423-
.IsDependentOn ("clean-base")
389+
Task ("component-setup")
424390
.Does (() =>
425391
{
426-
if (FileExists ("./generated.targets"))
427-
DeleteFile ("./generated.targets");
392+
var yamls = GetFiles ("./**/component/component.template.yaml");
428393

429-
if (DirectoryExists ("./externals"))
430-
DeleteDirectory ("./externals", true);
394+
foreach (var yaml in yamls) {
395+
var manifestTxt = FileReadText (yaml)
396+
.Replace ("$nuget-version$", NUGET_VERSION)
397+
.Replace ("$version$", COMPONENT_VERSION);
431398

432-
CleanDirectories ("./**/packages");
433-
});
399+
var newYaml = yaml.GetDirectory ().CombineWithFilePath ("component.yaml");
434400

401+
FileWriteText (newYaml, manifestTxt);
402+
}
403+
});
435404

436-
Task ("component-docs").Does (() =>
405+
Task ("component-docs")
406+
.IsDependentOn ("component-setup")
407+
.Does (() =>
437408
{
438409
var gettingStartedTemplates = new Dictionary<string, string> ();
439410

@@ -500,11 +471,6 @@ Task ("component-docs").Does (() =>
500471
}
501472
});
502473

503-
Task ("libs")
504-
.IsDependentOn ("buildtasks")
505-
.IsDependentOn ("genapi")
506-
.IsDependentOn ("libs-base");
507-
508474
Task ("genapi")
509475
.IsDependentOn ("externals")
510476
.IsDependentOn ("libs-base")
@@ -548,15 +514,17 @@ Task ("genapi")
548514
CopyFile ("./support-v4/source/bin/" + BUILD_CONFIG + "/Xamarin.Android.Support.v4.dll", "./output/Xamarin.Android.Support.v4.dll");
549515
});
550516

551-
Task ("buildtasks").Does (() =>
517+
Task ("buildtasks")
518+
.Does (() =>
552519
{
553520
NuGetRestore ("./support-vector-drawable/buildtask/Vector-Drawable-BuildTasks.csproj");
554521

555522
MSBuild ("./support-vector-drawable/buildtask/Vector-Drawable-BuildTasks.csproj", c => c.Configuration = BUILD_CONFIG);
556523
});
557524

558525

559-
Task ("droiddocs").Does (() =>
526+
Task ("droiddocs")
527+
.Does (() =>
560528
{
561529
EnsureDirectoryExists("./output");
562530

@@ -590,6 +558,61 @@ Task ("droiddocs").Does (() =>
590558
}
591559
});
592560

561+
Task ("ci-setup")
562+
.WithCriteria (!BuildSystem.IsLocalBuild)
563+
.Does (() =>
564+
{
565+
var buildCommit = "DEV";
566+
var buildNumber = "DEBUG";
567+
var buildTimestamp = DateTime.UtcNow.ToString ();
568+
569+
if (BuildSystem.IsRunningOnJenkins) {
570+
buildNumber = BuildSystem.Jenkins.Environment.Build.BuildTag;
571+
buildCommit = EnvironmentVariable("GIT_COMMIT") ?? buildCommit;
572+
} else if (BuildSystem.IsRunningOnVSTS) {
573+
buildNumber = BuildSystem.TFBuild.Environment.Build.Number;
574+
buildCommit = BuildSystem.TFBuild.Environment.Repository.SourceVersion;
575+
}
576+
577+
ReplaceTextInFiles("./**/source/**/AssemblyInfo.cs", "{BUILD_COMMIT}", buildCommit);
578+
ReplaceTextInFiles("./**/source/**/AssemblyInfo.cs", "{BUILD_NUMBER}", buildNumber);
579+
ReplaceTextInFiles("./**/source/**/AssemblyInfo.cs", "{BUILD_TIMESTAMP}", buildTimestamp);
580+
});
581+
582+
Task ("clean")
583+
.IsDependentOn ("clean-base")
584+
.Does (() =>
585+
{
586+
if (FileExists ("./generated.targets"))
587+
DeleteFile ("./generated.targets");
588+
589+
if (DirectoryExists ("./externals"))
590+
DeleteDirectory ("./externals", true);
591+
592+
CleanDirectories ("./**/packages");
593+
});
594+
595+
Task ("nuget")
596+
.IsDependentOn ("libs")
597+
.IsDependentOn ("nuget-setup")
598+
.IsDependentOn ("nuget-base");
599+
600+
Task ("component")
601+
.IsDependentOn ("nuget")
602+
.IsDependentOn ("component-docs")
603+
.IsDependentOn ("component-base");
604+
605+
Task ("libs")
606+
.IsDependentOn ("externals")
607+
.IsDependentOn ("nuget-setup")
608+
.IsDependentOn ("libs-base")
609+
.IsDependentOn ("genapi");
610+
611+
Task ("ci")
612+
.IsDependentOn ("ci-setup")
613+
.IsDependentOn ("diff")
614+
.IsDependentOn ("component");
615+
593616
SetupXamarinBuildTasks (buildSpec, Tasks, Task);
594617

595618
RunTarget (TARGET);

0 commit comments

Comments
 (0)