From ecd64c876b12c51700ce63a44a04b1f2a8dd5905 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Wed, 31 May 2017 13:04:51 +0300 Subject: [PATCH] Allow publishing to nuget from non-release branches with tags prefixed with `nuget-release-` --- build.cake | 1 - parameters.cake | 14 +++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/build.cake b/build.cake index 2f6bf5b0c1..f030d5f08c 100644 --- a/build.cake +++ b/build.cake @@ -334,7 +334,6 @@ Task("Publish-NuGet") .WithCriteria(() => !parameters.IsLocalBuild) .WithCriteria(() => !parameters.IsPullRequest) .WithCriteria(() => parameters.IsMainRepo) - .WithCriteria(() => parameters.IsMasterBranch) .WithCriteria(() => parameters.IsNuGetRelease) .Does(() => { diff --git a/parameters.cake b/parameters.cake index 4a7270011c..12f448303e 100644 --- a/parameters.cake +++ b/parameters.cake @@ -75,17 +75,25 @@ public class Parameters IsReleasable = StringComparer.OrdinalIgnoreCase.Equals(ReleasePlatform, Platform) && StringComparer.OrdinalIgnoreCase.Equals(ReleaseConfiguration, Configuration); IsMyGetRelease = !IsTagged && IsReleasable; - IsNuGetRelease = IsTagged && IsReleasable; + // VERSION Version = context.Argument("force-nuget-version", context.ParseAssemblyInfo(AssemblyInfoPath).AssemblyVersion); if (IsRunningOnAppVeyor) { + string tagVersion = null; if (IsTagged) { - // Use Tag Name as version - Version = buildSystem.AppVeyor.Environment.Repository.Tag.Name; + var tag = buildSystem.AppVeyor.Environment.Repository.Tag.Name; + var nugetReleasePrefix = "nuget-release-"; + IsNuGetRelease = IsTagged && IsReleasable && tag.StartsWith(nugetReleasePrefix); + if(IsNuGetRelease) + tagVersion = tag.Substring(nugetReleasePrefix.Length); + } + if(tagVersion != null) + { + Version = tagVersion; } else {