Delete previous Coherence cache and expand packages (#423, #425).

This commit is contained in:
Cesar Blum Silveira 2016-03-22 14:09:51 -07:00
parent 8908a327c0
commit 25e6606a6e
1 changed files with 27 additions and 12 deletions

View File

@ -21,6 +21,7 @@ functions
const string DefaultBuildBranch = "dev"; const string DefaultBuildBranch = "dev";
const string DefaultCoherenceCacheDir = ".coherence-cache"; const string DefaultCoherenceCacheDir = ".coherence-cache";
const string UniverseCommitsFileName = "commits-universe"; const string UniverseCommitsFileName = "commits-universe";
const string CoherenceCacheVersionFileName = "coherence-version";
private static bool Quiet { get; set; } private static bool Quiet { get; set; }
@ -231,27 +232,41 @@ var buildTarget = "compile"
.Where(d => { int _; return int.TryParse(d, out _); }) .Where(d => { int _; return int.TryParse(d, out _); })
.OrderByDescending(d => d) .OrderByDescending(d => d)
.First(); .First();
var targetCacheDir = Path.Combine(coherenceCacheDir, latestBuild); var latestBuildShare = Path.Combine(coherenceShare, latestBuild, "build");
var targetCacheBuildDir = Path.Combine(targetCacheDir, "build"); var coherenceVersionFilePath = Path.Combine(coherenceCacheDir, CoherenceCacheVersionFileName);
Log.Info("Latest Coherence build is " + latestBuild); 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("Coherence build " + latestBuild + " already cached at " + coherenceCacheDir);
Log.Info("Caching Coherence build " + latestBuild + " at " + targetCacheDir);
CopyFolder(latestBuildShare, targetCacheBuildDir, overwrite: true);
File.Copy(Path.Combine(coherenceShare, latestBuild, UniverseCommitsFileName), Path.Combine(targetCacheDir, UniverseCommitsFileName));
} }
else 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("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"));
} }
} }