当前位置: 首页>>代码示例>>C#>>正文


C# BuildStatus.Append方法代码示例

本文整理汇总了C#中BuildStatus.Append方法的典型用法代码示例。如果您正苦于以下问题:C# BuildStatus.Append方法的具体用法?C# BuildStatus.Append怎么用?C# BuildStatus.Append使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BuildStatus的用法示例。


在下文中一共展示了BuildStatus.Append方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: StartBuild

 private static void StartBuild(string projectName)
 {
     WriteVerbose("Starting project:  " + projectName);
     if (Projects[projectName].BuildCheckouts.Any())
     {
         foreach (var checkout in Projects[projectName].BuildCheckouts.Keys)
         {
             BuildStatus build = new BuildStatus();
             Directory.CreateDirectory(Path.Combine(MasterConfig.ProjectRoot, projectName, "Archive",
                                                    build.TimeStamp.ToString(DateTimeDirFormat)));
             build.Append("Log for project [" + projectName + "] on reference [" + checkout + "]");
             if (PreBuildActions(projectName, build, checkout) == 0)
                 if (BuildActions(projectName, build, checkout) == 0)
                     if (PostBuildActions(projectName, build, checkout) == 0)
                         build.ChangeResult("Success");
                     else
                         build.ChangeResult("Warning");
                 else
                     build.ChangeResult("Failed");
             else
                 build.ChangeResult("Error");
             Projects[projectName].GetHistory().Append(build);
             WriteVerbose("Project done: " + projectName + " \t Result: " + build.Result);
             string BuildLog = Path.Combine(MasterConfig.ProjectRoot, projectName, "Archive",
                              build.TimeStamp.ToString(DateTimeDirFormat), "run.log");
             File.WriteAllText(BuildLog, build.LogData);
         }
     }
     else
     {
         BuildStatus build = new BuildStatus();
         Directory.CreateDirectory(Path.Combine(MasterConfig.ProjectRoot, projectName, "Archive",
                                                build.TimeStamp.ToString(DateTimeDirFormat)));
         if (PreBuildActions(projectName, build) == 0)
             if (BuildActions(projectName, build) == 0)
                 if (PostBuildActions(projectName, build) == 0)
                     build.ChangeResult("Success");
                 else
                     build.ChangeResult("Warning");
             else
                 build.ChangeResult("Failed");
         else
             build.ChangeResult("Error");
         Projects[projectName].GetHistory().Append(build);
         WriteVerbose("Project done: " + projectName + " \t Result: " + build.Result);
         string BuildLog = Path.Combine(MasterConfig.ProjectRoot, projectName, "Archive",
                          build.TimeStamp.ToString(DateTimeDirFormat), "run.log");
         File.WriteAllText(BuildLog, build.LogData);
     }
 }
开发者ID:virmitio,项目名称:Temp2,代码行数:50,代码来源:AutoBuild.cs

示例2: doActions

        private static int doActions(string projectName, IEnumerable<string> commands, BuildStatus status = null, XDictionary<string, string> Macros = null)
        {
            if (projectName == null)
                throw new ArgumentException("ProjectName cannot be null.");
            if (!Projects.ContainsKey(projectName))
                throw new ArgumentException("Project not found: " + projectName);

            Macros = Macros ?? new XDictionary<string, string>();

            status = status ?? new BuildStatus();
            string ArchiveLoc = Path.Combine(MasterConfig.ProjectRoot, projectName, "Archive",
                                             status.TimeStamp.ToString(DateTimeDirFormat));

            if (!Directory.Exists(ArchiveLoc))
                Directory.CreateDirectory(ArchiveLoc);
            ProjectData proj = Projects[projectName];
            ProcessUtility _cmdexe = new ProcessUtility("cmd.exe");
            // Redirect stdout and stderr to the same output

            Func<string> getToolSwitches = () =>
            {
                string ret = String.Empty;
                foreach (
                    string s in
                        MasterConfig.VersionControlList[proj.VersionControl].Tool.
                            Switches)
                    if (s.Contains(" "))
                        ret += " \"" + s + "\"";
                    else
                        ret += " " + s;
                return ret;
            };

            Macros["project"] = projectName;
            Macros["vcstool"] = MasterConfig.VersionControlList[proj.VersionControl].Tool.Path;
            Macros["vcsswitches"] = getToolSwitches();
            Macros["keepclean"] = proj.KeepCleanRepo.ToString();
            string rootPath = MasterConfig.ProjectRoot + @"\" + projectName;
            Macros["projectroot"] = rootPath;
            Macros["repo_url"] = proj.RepoURL;
            Macros["build_datetime"] = status.TimeStamp.ToString(DateTimeDirFormat);
            Macros["archive"] = ArchiveLoc;
            Macros["output_store"] = MasterConfig.OutputStore;

            foreach (string command in commands)
            {
                StringBuilder std = new StringBuilder();
                _cmdexe.ResetStdOut(std);
                _cmdexe.ResetStdErr(std);

                status.Append("AutoBuild - Begin command:  " + command);
                Macros["currentcommand"] = command;

                CommandScript tmp;
                if (proj.Commands.ContainsKey(command))
                {
                    tmp = proj.Commands[command];
                }
                else if (MasterConfig.Commands.ContainsKey(command))
                {
                    tmp = MasterConfig.Commands[command];
                }
                else
                {
                    // Can't locate the specified command.  Bail with error.
                    status.Append("AutoBuild Error:  Unable to locate command script: " + command);
                    return (int)Errors.NoCommand;
                }

                int retVal = tmp.Run(_cmdexe, rootPath, projectName, new XDictionary<string, string>(Macros));
                status.Append(_cmdexe.StandardOut);
                if (retVal != 0)
                    return retVal;
            }

            return 0;
        }
开发者ID:virmitio,项目名称:Temp2,代码行数:77,代码来源:AutoBuild.cs


注:本文中的BuildStatus.Append方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。