From 25e6606a6e9a634fe219619982dfd3e775ef65c0 Mon Sep 17 00:00:00 2001 From: Cesar Blum Silveira Date: Tue, 22 Mar 2016 14:09:51 -0700 Subject: [PATCH] Delete previous Coherence cache and expand packages (#423, #425). --- makefile.shade | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/makefile.shade b/makefile.shade index 73d7efac2d..e5bd1b9035 100644 --- a/makefile.shade +++ b/makefile.shade @@ -21,6 +21,7 @@ functions const string DefaultBuildBranch = "dev"; const string DefaultCoherenceCacheDir = ".coherence-cache"; const string UniverseCommitsFileName = "commits-universe"; + const string CoherenceCacheVersionFileName = "coherence-version"; private static bool Quiet { get; set; } @@ -231,27 +232,41 @@ var buildTarget = "compile" .Where(d => { int _; return int.TryParse(d, out _); }) .OrderByDescending(d => d) .First(); - var targetCacheDir = Path.Combine(coherenceCacheDir, latestBuild); - var targetCacheBuildDir = Path.Combine(targetCacheDir, "build"); + var latestBuildShare = Path.Combine(coherenceShare, latestBuild, "build"); + var coherenceVersionFilePath = Path.Combine(coherenceCacheDir, CoherenceCacheVersionFileName); Log.Info("Latest Coherence build is " + latestBuild); - - if (!Directory.Exists(targetCacheDir)) + + if (Directory.Exists(coherenceCacheDir) && + File.Exists(coherenceVersionFilePath) && + File.ReadAllText(coherenceVersionFilePath) == latestBuild) { - var latestBuildShare = Path.Combine(coherenceShare, latestBuild, "build"); - - Log.Info("Caching Coherence build " + latestBuild + " at " + targetCacheDir); - CopyFolder(latestBuildShare, targetCacheBuildDir, overwrite: true); - File.Copy(Path.Combine(coherenceShare, latestBuild, UniverseCommitsFileName), Path.Combine(targetCacheDir, UniverseCommitsFileName)); + Log.Info("Coherence build " + latestBuild + " already cached at " + coherenceCacheDir); } else { - Log.Info("Coherence build " + latestBuild + " already cached at " + targetCacheDir); + if (Directory.Exists(coherenceCacheDir)) + { + Log.Info("Deleting previous Coherence cache"); + Directory.Delete(coherenceCacheDir, true); + } + + Log.Info("Creating new Coherence cache directory at " + coherenceCacheDir); + Directory.CreateDirectory(coherenceCacheDir); + + Log.Info("Caching Coherence build " + latestBuild + " at " + coherenceCacheDir); + NuGetPackagesAdd(sourcePackagesDir: latestBuildShare, targetPackagesDir: coherenceCacheDir); + + Log.Info("Copying Universe commits file"); + File.Copy(Path.Combine(coherenceShare, latestBuild, UniverseCommitsFileName), Path.Combine(coherenceCacheDir, UniverseCommitsFileName)); + + Log.Info("Saving cached Coherence build version"); + File.WriteAllText(coherenceVersionFilePath, latestBuild); } - Environment.SetEnvironmentVariable("NUGET_VOLATILE_FEED_ASPNETVNEXT", targetCacheBuildDir); + Environment.SetEnvironmentVariable("NUGET_VOLATILE_FEED_ASPNETVNEXT", coherenceCacheDir); Environment.SetEnvironmentVariable("NUGET_VOLATILE_FEED_EXTERNAL", Path.Combine(dropsShare, "latest-packages", "external", buildBranch)); - Environment.SetEnvironmentVariable("UNIVERSE_COMMITS_FILE", Path.Combine(targetCacheDir, "commits-universe")); + Environment.SetEnvironmentVariable("UNIVERSE_COMMITS_FILE", Path.Combine(coherenceCacheDir, "commits-universe")); } }