public BuildResult Build(Uri uriForDownload, string projectName, ProjectLanguageType type, out Uri artifactArchiveUri) { Console.WriteLine("Downloading..."); _azureService.Download(uriForDownload, projectName).GetAwaiter().GetResult(); Console.WriteLine("UnZiping..."); _fileArchiver.UnZip(projectName); Console.WriteLine("Building..."); var buildResult = _builder.Build(projectName, type); Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("Build result:"); Console.WriteLine(buildResult.Message); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Creating archive..."); _fileArchiver.CreateArchive(projectName); Console.WriteLine("Uploading artifacts to blob..."); artifactArchiveUri = _azureService.Upload(projectName).GetAwaiter().GetResult(); Console.WriteLine("Removing temporary files..."); _fileArchiver.RemoveTemporaryFiles(projectName); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Message was handled! Is build succeeded: {buildResult.IsSuccess}"); Console.ForegroundColor = ConsoleColor.White; return(buildResult); }
public string Run(string projectName, ProjectLanguageType type, params string[] inputs) { switch (type) { case ProjectLanguageType.CSharpConsoleApp: return(_cSharpBuilder.Run(projectName, inputs)); case ProjectLanguageType.GoConsoleApp: return(_goBuilder.Run(projectName)); case ProjectLanguageType.TypeScriptConsoleApp: return(_tsBuilder.Run(projectName)); default: return("Such language and application type isn't defined"); } }
public async Task BuildProject(int projectId, int userId, ProjectLanguageType languageType) { var archive = await _projectStructureService.CreateProjectZipFile(projectId); var uri = await _blobRepo.UploadProjectArchiveAsync(archive, $"project_{projectId}"); var build = await CreateStartBuildResult(projectId, userId); var message = new ProjectForBuildDTO() { ProjectId = projectId, UriForProjectDownload = uri, Language = languageType, TimeStamp = DateTime.Now, BuildId = build.Id }; var strMessage = JsonConvert.SerializeObject(message); _queueService.SendBuildMessage(strMessage); }
public BuildResult Build(string projectName, ProjectLanguageType type) { switch (type) { case ProjectLanguageType.CSharpConsoleApp: return(_cSharpBuilder.Build(projectName)); case ProjectLanguageType.GoConsoleApp: return(_goBuilder.Build(projectName)); case ProjectLanguageType.TypeScriptConsoleApp: return(_tsBuilder.Build(projectName)); default: return(new BuildResult { Message = "Such language and application type isn't defined" }); } }