예제 #1
0
 public override void DumpBody(XmlWriter writer)
 {
     writer.WriteElementString("product-id", ProductId.ToString());
     writer.WriteElementString("edition", Edition.ToString());
     writer.WriteElementString("major-version", MajorVersion.ToString());
     writer.WriteElementString("minor-version", MinorVersion.ToString());
     writer.WriteElementString("build-number", BuildNumber.ToString());
     writer.WriteElementString("build-date", BuildDate.ToString());
 }
예제 #2
0
        /// <summary>
        /// Executes the task - initialize the build number and package version.
        /// Build number is increased and the updated package version information is stored back to version.props file
        /// </summary>
        /// <returns>True</returns>
        public override bool Execute()
        {
            if (DebugTasks)
            {
                //Wait for debugger
                Log.LogMessage(
                    MessageImportance.High,
                    $"Debugging task {GetType().Name}, set the breakpoint and attach debugger to process with PID = {System.Diagnostics.Process.GetCurrentProcess().Id}");

                while (!System.Diagnostics.Debugger.IsAttached)
                {
                    Thread.Sleep(1000);
                }
            }

            //increase the build number
            BuildNumber = BuildNumber + 1;

            //process the package version
            var ver = $"{Major}.{Minor}.{Patch}";

            var dt = System.DateTime.Now.ToString("yyMMddHHmmss");

            if (Configuration.ToLower() != "release")
            {
                PackageVersionShort = $"{ver}-dev.{BuildNumber}.{dt}";
                PackageVersionFull  = $"{PackageVersionShort}+{GitCommits}.{GitBranch}.{GitCommit}";
            }
            else
            {
                PackageVersionShort = ver;
                PackageVersionFull  = $"{PackageVersionShort}+{BuildNumber}.{dt}.{GitBranch}.{GitCommit}";
            }

            //update version file
            var document    = XDocument.Load(VersionFile);
            var projectNode = GetOrCreateElement(document, "Project");

            SetProjectPropertyNode(projectNode, "RadBuild", BuildNumber.ToString());
            SetProjectPropertyNode(projectNode, "PackageVersionShort", PackageVersionShort);
            SetProjectPropertyNode(projectNode, "PackageVersionFull", PackageVersionFull);
            SetProjectPropertyNode(projectNode, "GitCommit", GitCommit);
            SetProjectPropertyNode(projectNode, "GitBranch", GitBranch);

            File.WriteAllText(VersionFile, document.ToString());

            Log.LogMessage($@"Updated version file: version {Major}.{Minor}.{Patch}, package: {PackageVersionFull}, build #{BuildNumber} to {VersionFile}");

            return(true);
        }
예제 #3
0
        public void SaveSettings()
        {
            Configuration c = ConfigurationManager.OpenExeConfiguration("hMailServer builder.exe");

            c.AppSettings.Settings["SourcePath"].Value     = SourcePath;
            c.AppSettings.Settings["BuildNumber"].Value    = BuildNumber.ToString();
            c.AppSettings.Settings["Version"].Value        = Version;
            c.AppSettings.Settings["VSPath"].Value         = VSPath;
            c.AppSettings.Settings["InnoSetupPath"].Value  = InnoSetupPath;
            c.AppSettings.Settings["SubversionPath"].Value = SubversionPath;
            c.AppSettings.Settings["MSBuildPath"].Value    = MSBuildPath;

            c.Save(ConfigurationSaveMode.Modified);
        }
예제 #4
0
    public bool SaveToFile(string productCodeName, string versionCodeName)
    {
        var dirPath         = Path.Combine(AppGlobal.AppDataDirectory, productCodeName, versionCodeName);
        var XMLFilePath     = Path.Combine(dirPath, string.Format("{0}.{1}", CodeName, RelXMLExtension));
        var xDoc            = new XmlDocument();
        var declarationNode = xDoc.CreateXmlDeclaration("1.0", "", "");

        xDoc.AppendChild(declarationNode);
        var comment = xDoc.CreateComment(string.Format("This file contains information about {0} - {1}", CodeName, DisplayName));

        xDoc.AppendChild(comment);
        var     docRoot       = xDoc.CreateElement(xtRelease);
        XmlNode ndCodeName    = xDoc.CreateElement(xtReleaseCode),
                ndDisplayName = xDoc.CreateElement(xtDisplayName),
                ndDescription = xDoc.CreateElement(xtDescription),
                ndStage       = xDoc.CreateElement(xtStage),
                ndTargetDate  = xDoc.CreateElement(xtTargetDate),
                ndRiskLevel   = xDoc.CreateElement(xtRiskLevel),
                ndBuildNumber = xDoc.CreateElement(xtBuildNumber),
                ndReleaseType = xDoc.CreateElement(xtReleaseType);

        ndCodeName.InnerText    = CodeName;
        ndDisplayName.InnerText = DisplayName;
        ndDescription.InnerText = Description;
        ndStage.InnerText       = Stage.ToString();
        ndTargetDate.InnerText  = TargetDate;
        ndRiskLevel.InnerText   = Risk.ToString();
        ndBuildNumber.InnerText = BuildNumber.ToString();
        ndReleaseType.InnerText = ReleaseType.ToString();
        docRoot.AppendChild(ndCodeName);
        docRoot.AppendChild(ndDisplayName);
        docRoot.AppendChild(ndDescription);
        docRoot.AppendChild(ndStage);
        docRoot.AppendChild(ndTargetDate);
        docRoot.AppendChild(ndRiskLevel);
        docRoot.AppendChild(ndBuildNumber);
        docRoot.AppendChild(ndReleaseType);
        xDoc.AppendChild(docRoot);
        try
        {
            AppGlobal.CreateDirectory(dirPath);
            xDoc.Save(XMLFilePath);
            return(true);
        }
        catch (Exception e)
        {
            throw new Exception(string.Format("Unable to save Version {0} to file.{1}Message:{2}.", CodeName, Environment.NewLine, e.Message), e);
        }
    }
예제 #5
0
        /// <inheritdoc />
        public override bool Execute()
        {
            // BuildNumber + "0...0" + RevisionNumber.
            var stamp = BuildNumber.ToString(CultureInfo.InvariantCulture);

            var revisionString = RevisionNumber.ToString(CultureInfo.InvariantCulture);

            for (int i = 0; i < 5 - revisionString.Length; i++)
            {
                stamp += "0";
            }

            stamp += revisionString;

            BuildStamp = stamp;

            return(!Log.HasLoggedErrors);
        }
예제 #6
0
        /// <summary>
        /// [EDITOR_ONLY] Sets build Number.
        /// </summary>
        /// <param name="buildNumber"></param>
        public void SetBuildNumber(int buildNumber)
        {
            switch (EditorUserBuildSettings.activeBuildTarget)
            {
            case BuildTarget.StandaloneWindows:
                break;

            case BuildTarget.StandaloneOSX:
                PlayerSettings.macOS.buildNumber = BuildNumber.ToString();
                break;

            case BuildTarget.Android:
                PlayerSettings.Android.bundleVersionCode = BuildNumber;
                break;

            case BuildTarget.iOS:
                PlayerSettings.iOS.buildNumber = BuildNumber.ToString();
                break;
            }
        }
        internal override string GetRtfFormattedRule()
        {
            RichTextBox rTxtBx = new RichTextBox();

            if (UseMajorVersion || UseProductType)
            {
                if (ReverseRule)
                {
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.green, "<lar:");
                    print(rTxtBx, GroupDisplayer.boldFont, GroupDisplayer.black, "Not");
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.green, ">\r\n");
                }

                print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "<bar:");
                print(rTxtBx, GroupDisplayer.elementAndAttributeFont, GroupDisplayer.red, "WindowsVersion");

                if (UseComparison)
                {
                    print(rTxtBx, GroupDisplayer.elementAndAttributeFont, GroupDisplayer.blue, " Comparison");
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "=\"");
                    print(rTxtBx, GroupDisplayer.boldFont, GroupDisplayer.black, Comparison);
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "\"");
                }

                if (UseMajorVersion)
                {
                    print(rTxtBx, GroupDisplayer.elementAndAttributeFont, GroupDisplayer.blue, " MajorVersion");
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "=\"");
                    print(rTxtBx, GroupDisplayer.boldFont, GroupDisplayer.black, MajorVersion.ToString());
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "\"");
                }

                if (UseMinorVersion)
                {
                    print(rTxtBx, GroupDisplayer.elementAndAttributeFont, GroupDisplayer.blue, " MinorVersion");
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "=\"");
                    print(rTxtBx, GroupDisplayer.boldFont, GroupDisplayer.black, MinorVersion.ToString());
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "\"");
                }

                if (UseBuildNumber)
                {
                    print(rTxtBx, GroupDisplayer.elementAndAttributeFont, GroupDisplayer.blue, " BuildNumber");
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "=\"");
                    print(rTxtBx, GroupDisplayer.boldFont, GroupDisplayer.black, BuildNumber.ToString());
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "\"");
                }

                if (UseServicePackMajor)
                {
                    print(rTxtBx, GroupDisplayer.elementAndAttributeFont, GroupDisplayer.blue, " ServicePackMajor");
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "=\"");
                    print(rTxtBx, GroupDisplayer.boldFont, GroupDisplayer.black, ServicePackMajor.ToString());
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "\"");
                }

                if (UseServicePackMinor)
                {
                    print(rTxtBx, GroupDisplayer.elementAndAttributeFont, GroupDisplayer.blue, " ServicePackMinor");
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "=\"");
                    print(rTxtBx, GroupDisplayer.boldFont, GroupDisplayer.black, ServicePackMinor.ToString());
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "\"");
                }

                if (UseProductType)
                {
                    print(rTxtBx, GroupDisplayer.elementAndAttributeFont, GroupDisplayer.blue, " ProductType");
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "=\"");
                    print(rTxtBx, GroupDisplayer.boldFont, GroupDisplayer.black, ProductType.ToString());
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "\"");
                }

                print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "/>");

                if (ReverseRule)
                {
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.black, "\r\n");
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.green, "</lar:");
                    print(rTxtBx, GroupDisplayer.boldFont, GroupDisplayer.black, "Not");
                    print(rTxtBx, GroupDisplayer.normalFont, GroupDisplayer.green, ">");
                }
            }
            return(rTxtBx.Rtf);
        }