public async Task <Build> PushAsync(Guid projectId, BuildTaskDto taskDto) { logger.LogInformation("Pushing task into queue"); var build = await CreateBuildAsync(taskDto); var buildSteps = await buildStepRepository.GetAllFromBuildConfigAsync(taskDto.BuildConfig.Id); var commands = buildSteps.Select(bs => new BuildCommand { Command = bs.BuildStepScript.Command, Arguments = bs.BuildStepScript.Arguments }).ToList(); var project = await projectRepository.FindByIdAsync(projectId); var buildTask = new BuildTask { Id = Guid.NewGuid(), Commands = commands, BuildId = build.Id, GitToken = project.GitToken, ProjectUrl = project.ProjectUri.ToString() }; queue.Enqueue(buildTask, Priority.Normal); await ChangeBuildStatus(build.Id, BuildStatus.WaitingToStart, null); return(build); }
public async Task <List <BuildStep> > GetAllFromBuildConfigAsync(Guid buildConfigId) { var buildSteps = await buildStepRepository.GetAllFromBuildConfigAsync(buildConfigId); return(buildSteps .Select(ModelsMapper.ConvertBuildStepDbModelToServiceModel) .ToList()); }