コード例 #1
0
ファイル: Worker.cs プロジェクト: yMoroziuk/bsa-2019-ide
        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);
        }
コード例 #2
0
        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");
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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"
                });
            }
        }