Tweaking update-release target to be runnable from the CI

* Relying on git log --exit-code to fail in case there are unmerged
  changes in the release branch.
* Specifically update aspnetvnext feed when branching to release.
This commit is contained in:
Pranav K 2015-08-17 10:51:19 -07:00
parent 3d06f3dfc2
commit b87497c6da
1 changed files with 39 additions and 17 deletions

View File

@ -119,7 +119,8 @@ var buildTarget = "compile"
} }
} }
#check-update-release #update-release
-// Merge dev branch to release
@{ @{
Parallel.ForEach(GetAllRepos(), CloneOrUpdate); Parallel.ForEach(GetAllRepos(), CloneOrUpdate);
@ -128,27 +129,48 @@ var buildTarget = "compile"
foreach (var repo in GetAllRepos()) foreach (var repo in GetAllRepos())
{ {
Log.Info("Checking repo: " + repo); Log.Info("Checking repo: " + repo);
GitCommand(repo, "log origin/dev..origin/release"); // Check if the repo previously had a release branch
try
{
GitCommand(repo, "rev-parse --verify --quiet origin/release");
}
catch
{
Log.Info("Repository " + repo + " does not have a release branch.");
continue;
}
try
{
GitCommand(repo, "log -1 --exit-code origin/dev..origin/release");
}
catch
{
Log.Warn("Unmerged changes in repository " + repo);
GitCommand(repo, "log origin/dev..origin/release");
throw;
}
} }
Log.Info("If there are no conflicts in the repos, continue with the 'update-release' target"); Log.Info("No conflicts in repos, continuing with creating release branch.");
}
#update-release
-// Merge dev branch to release
@{
foreach (var repo in GetAllRepos()) foreach (var repo in GetAllRepos())
{ {
CloneOrUpdate(repo);
GitCommand(repo, "checkout origin/dev -B release"); GitCommand(repo, "checkout origin/dev -B release");
if(!ShouldSkipCopyingNugetConfig(repo)) // Update NuGet.Config
var nugetConfigPath = Path.Combine(repo, "NuGet.config");
if (File.Exists(nugetConfigPath))
{ {
File.Copy(Path.Combine("build-template", "NuGet.release.config"), var original = File.ReadAllText(nugetConfigPath);
Path.Combine(repo, "NuGet.config"), var modified = original.Replace("https://www.myget.org/F/aspnetvnext", "https://www.myget.org/F/aspnetrelease");
overwrite: true);
GitCommand(repo, "commit -am \"Updating to release NuGet.config\""); if (!string.Equals(original, modified, StringComparison.Ordinal))
{
File.WriteAllText(nugetConfigPath, modified);
GitCommand(repo, "add NuGet.Config");
GitCommand(repo, "commit -m \"Updating to release NuGet.config.\"");
}
} }
GitCommand(repo, "push origin release:release"); GitCommand(repo, "push origin release:release");
@ -540,7 +562,7 @@ functions
{ {
var nonDefaultRepos = new[] var nonDefaultRepos = new[]
{ {
"XRE", "DNX",
"MusicStore", "MusicStore",
"Coherence", "Coherence",
"Coherence-Signed", "Coherence-Signed",