本文整理汇总了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);
}
}
示例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;
}