private bool PullGitRepo(Objects.BuildItem buildItem) { var cloneFoler = SettingsDetails.SourcesLocation + buildItem.Name; if (Directory.Exists(cloneFoler + "\\.git")) { return(GitLogic.PullRepo(SettingsDetails, cloneFoler)); } else { return(GitLogic.CloneRepo(SettingsDetails, buildItem.GitRepoAddress, cloneFoler)); } }
public static bool BuildProject(Objects.BuildItem buildItem, Settings.Objects.Details settingsDetails) { var projectLocation = settingsDetails.SourcesLocation + buildItem.Name; var outputLocation = settingsDetails.BuildLocation + buildItem.Name; var solutionLocation = projectLocation + "\\" + buildItem.PathToSln; if (Directory.Exists(outputLocation) == false) { Directory.CreateDirectory(outputLocation); } //InstallNuGetPackages(solutionLocation); FileLogger fileLogger = new FileLogger() { Verbosity = LoggerVerbosity.Detailed, ShowSummary = true, SkipProjectStartedText = true }; BuildParameters param = new BuildParameters() { MaxNodeCount = Environment.ProcessorCount, Loggers = new[] { fileLogger }, }; Dictionary <string, string> globalProperties = new Dictionary <string, string> { { "Configuration", "Release" }, // always "Debug" { "Platform", buildItem.Platform }, // always "Any CPU" { "OutputPath", outputLocation }, }; BuildManager.DefaultBuildManager.BeginBuild(param); var buildRequest = new BuildRequestData(solutionLocation, globalProperties, null, new String[] { "Build" }, null); var buildSubmission = BuildManager.DefaultBuildManager.PendBuildRequest(buildRequest); buildSubmission.Execute(); BuildManager.DefaultBuildManager.EndBuild(); if (buildSubmission.BuildResult.OverallResult == BuildResultCode.Failure) { return(false); } return(true); }
public void BuildItem(Objects.BuildItem buildItem) { if (PullGitRepo(buildItem) == false) { return; } if (BuildProject(buildItem) == false) { return; } if (PublishToS3(buildItem) == false) { return; } }
private bool BuildProject(Objects.BuildItem buildItem) { BuildLogic.BuildProject(buildItem, SettingsDetails); return(true); }
private bool PublishToS3(Objects.BuildItem buildItem) { return(true); }