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);
        }
Ejemplo n.º 2
0
        public async Task <List <BuildStep> > GetAllFromBuildConfigAsync(Guid buildConfigId)
        {
            var buildSteps = await buildStepRepository.GetAllFromBuildConfigAsync(buildConfigId);

            return(buildSteps
                   .Select(ModelsMapper.ConvertBuildStepDbModelToServiceModel)
                   .ToList());
        }