예제 #1
0
        public static Dictionary <string, string> GetVariablesFor(
            SemanticVersion semanticVersion,
            AssemblyVersioningScheme assemblyVersioningScheme          = AssemblyVersioningScheme.MajorMinorPatch,
            bool addNumberOfCommitsSinceTagOnMasterBranchToFileVersion = true)
        {
            var bmd       = semanticVersion.BuildMetaData;
            var formatter = bmd.Branch == "develop" ? new CiFeedFormatter() : null;

            var assemblyMetaData = AssemblyVersionsGenerator.Process(
                semanticVersion, assemblyVersioningScheme, addNumberOfCommitsSinceTagOnMasterBranchToFileVersion);

            var variables = new Dictionary <string, string>(StringComparer.InvariantCultureIgnoreCase)
            {
                { Major, semanticVersion.Major.ToString() },
                { Minor, semanticVersion.Minor.ToString() },
                { Patch, semanticVersion.Patch.ToString() },
                { PreReleaseTag, semanticVersion.PreReleaseTag },
                { PreReleaseTagWithDash, semanticVersion.PreReleaseTag.HasTag() ? "-" + semanticVersion.PreReleaseTag : null },
                { BuildMetaData, bmd },
                { FullBuildMetaData, bmd.ToString("f") },
                { MajorMinorPatch, string.Format("{0}.{1}.{2}", semanticVersion.Major, semanticVersion.Minor, semanticVersion.Patch) },
                { SemVer, semanticVersion.ToString(null, formatter) },
                { LegacySemVer, semanticVersion.ToString("l", formatter) },
                { LegacySemVerPadded, semanticVersion.ToString("lp", formatter) },
                { AssemblySemVer, semanticVersion.ToString("j") + ".0" },
                { FullSemVer, semanticVersion.ToString("f", formatter) },
                { InformationalVersion, semanticVersion.ToString("i", formatter) },
                { ClassicVersion, string.Format("{0}.{1}", semanticVersion.ToString("j"), (bmd.CommitsSinceTag ?? 0)) },
                { ClassicVersionWithTag, string.Format("{0}.{1}{2}", semanticVersion.ToString("j"),
                                                       bmd.CommitsSinceTag ?? 0,
                                                       semanticVersion.PreReleaseTag.HasTag() ? "-" + semanticVersion.PreReleaseTag : null) },
                { BranchName, bmd.Branch },
                { Sha, bmd.Sha },
                { AssemblyVersion, assemblyMetaData.Version },
                { AssemblyFileVersion, assemblyMetaData.FileVersion },
                { OriginalRelease, string.Format("{0}.{1}",
                                                 bmd.ReleaseDate.OriginalCommitSha,
                                                 bmd.ReleaseDate.OriginalDate.UtcDateTime.ToString("u")) },
            };

            // Use ToLower() to fix a bug where Beta and beta are different in NuGet
            variables[NuGetVersionV2] = variables[LegacySemVerPadded].ToLower();
            //variables[NuGetVersionV3] = variables[LegacySemVerPadded].ToLower(); // TODO: when v3 is released, determine what to use
            variables[NuGetVersion] = variables[NuGetVersionV2];

            return(variables);
        }
예제 #2
0
        public virtual void WriteIntegration(SemanticVersion semanticVersion, Action <string> writer)
        {
            if (semanticVersion == null)
            {
                return;
            }

            if (writer == null)
            {
                return;
            }

            writer(string.Format("Executing GenerateSetVersionMessage for '{0}'.", GetType().Name));
            writer(GenerateSetVersionMessage(semanticVersion.ToString("f")));
            writer(string.Format("Executing GenerateBuildLogOutput for '{0}'.", GetType().Name));
            foreach (var buildParameter in BuildOutputFormatter.GenerateBuildLogOutput(semanticVersion, this))
            {
                writer(buildParameter);
            }
        }
예제 #3
0
        public static Dictionary <string, string> GetVariablesFor(SemanticVersion semanticVersion, Config configuration)
        {
            var bmd       = semanticVersion.BuildMetaData;
            var formatter = bmd.Branch == "develop" ? new CiFeedFormatter() : null;

            var variables = new Dictionary <string, string>(StringComparer.InvariantCultureIgnoreCase)
            {
                { Major, semanticVersion.Major.ToString() },
                { Minor, semanticVersion.Minor.ToString() },
                { Patch, semanticVersion.Patch.ToString() },
                { PreReleaseTag, semanticVersion.PreReleaseTag },
                { PreReleaseTagWithDash, semanticVersion.PreReleaseTag.HasTag() ? "-" + semanticVersion.PreReleaseTag : null },
                { BuildMetaData, bmd },
                { FullBuildMetaData, bmd.ToString("f") },
                { MajorMinorPatch, string.Format("{0}.{1}.{2}", semanticVersion.Major, semanticVersion.Minor, semanticVersion.Patch) },
                { SemVer, semanticVersion.ToString(null, formatter) },
                { LegacySemVer, semanticVersion.ToString("l", formatter) },
                { LegacySemVerPadded, semanticVersion.ToString("lp", formatter) },
                { AssemblySemVer, semanticVersion.GetAssemblyVersion(configuration.AssemblyVersioningScheme) },
                { AssemblyFileSemVer, semanticVersion.GetAssemblyFileVersion(configuration.AssemblyVersioningScheme) },
                { FullSemVer, semanticVersion.ToString("f", formatter) },
                { InformationalVersion, semanticVersion.ToString("i", formatter) },
                { ClassicVersion, string.Format("{0}.{1}", semanticVersion.ToString("j"), (bmd.CommitsSinceTag ?? 0)) },
                { ClassicVersionWithTag, string.Format("{0}.{1}{2}", semanticVersion.ToString("j"),
                                                       bmd.CommitsSinceTag ?? 0,
                                                       semanticVersion.PreReleaseTag.HasTag() ? "-" + semanticVersion.PreReleaseTag : null) },
                { BranchName, bmd.Branch },
                { Sha, bmd.Sha },
            };

            // Use ToLower() to fix a bug where Beta and beta are different in NuGet
            variables[NuGetVersionV2] = variables[LegacySemVerPadded].ToLower();
            //variables[NuGetVersionV3] = variables[LegacySemVerPadded].ToLower(); // TODO: when v3 is released, determine what to use
            variables[NuGetVersion] = variables[NuGetVersionV2];

            return(variables);
        }