Search in sources :

Example 26 with Build

use of org.jboss.pnc.dto.Build in project pnc by project-ncl.

the class BuildProviderImpl method getSpecific.

@Override
public Build getSpecific(String buildId) {
    List<BuildTask> runningBuilds = buildCoordinator.getSubmittedBuildTasks();
    Build build = runningBuilds.stream().filter(buildTask -> buildId.equals(buildTask.getId())).findAny().map(buildMapper::fromBuildTask).orElse(null);
    // if build not in runningBuilds, check the database
    if (build == null) {
        // use findByIdFetchProperties instead of super.getSpecific to get 'BuildConfigurationAudited' object
        build = mapper.toDTO(buildRecordRepository.findByIdFetchProperties(parseId(buildId)));
    }
    return build;
}
Also used : PageInfo(org.jboss.pnc.spi.datastore.repositories.api.PageInfo) BuildConfiguration(org.jboss.pnc.model.BuildConfiguration) Vertex(org.jboss.util.graph.Vertex) Arrays(java.util.Arrays) RolesAllowed(javax.annotation.security.RolesAllowed) ArtifactRepository(org.jboss.pnc.spi.datastore.repositories.ArtifactRepository) SYSTEM_USER(org.jboss.pnc.facade.providers.api.UserRoles.SYSTEM_USER) StringUtils(org.jboss.pnc.common.util.StringUtils) BuildConfigSetRecordRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigSetRecordRepository) Map(java.util.Map) RunningBuildCount(org.jboss.pnc.dto.response.RunningBuildCount) BigInteger(java.math.BigInteger) EJBAccessException(javax.ejb.EJBAccessException) BuildConfigurationRevision(org.jboss.pnc.dto.BuildConfigurationRevision) BuildConfigurationRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigurationRepository) User(org.jboss.pnc.model.User) BuildRef(org.jboss.pnc.dto.BuildRef) SortInfoProducer(org.jboss.pnc.spi.datastore.repositories.SortInfoProducer) Gerrit(org.jboss.pnc.common.gerrit.Gerrit) BuildProvider(org.jboss.pnc.facade.providers.api.BuildProvider) Set(java.util.Set) BuildRecordPredicates.withArtifactProduced(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withArtifactProduced) IdRev(org.jboss.pnc.model.IdRev) BuildRecordPredicates.withPerformedInMilestone(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withPerformedInMilestone) Base32LongID(org.jboss.pnc.model.Base32LongID) BuildRecordPredicates.withBuildConfigurationId(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withBuildConfigurationId) BuildTask(org.jboss.pnc.spi.coordinator.BuildTask) HttpUtils(org.jboss.pnc.common.util.HttpUtils) TreeSet(java.util.TreeSet) ArrayList(java.util.ArrayList) BuildPageInfo(org.jboss.pnc.facade.providers.api.BuildPageInfo) BuildRecordPredicates.withoutImplicitDependants(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withoutImplicitDependants) DTOValidationException(org.jboss.pnc.facade.validation.DTOValidationException) StreamSupport(java.util.stream.StreamSupport) CorruptedDataException(org.jboss.pnc.facade.validation.CorruptedDataException) ResultMapper(org.jboss.pnc.mapper.api.ResultMapper) ValidationException(org.jboss.pnc.spi.exception.ValidationException) BuildRecordPredicates.withoutLinkedNRRRecordOlderThanTimestamp(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withoutLinkedNRRRecordOlderThanTimestamp) BuildRecord(org.jboss.pnc.model.BuildRecord) TemporaryBuildsCleanerAsyncInvoker(org.jboss.pnc.coordinator.maintenance.TemporaryBuildsCleanerAsyncInvoker) Page(org.jboss.pnc.dto.response.Page) BuildRecordPredicates(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates) BuildRecordPredicates.withBuildConfigSetId(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withBuildConfigSetId) InvalidEntityException(org.jboss.pnc.facade.validation.InvalidEntityException) StreamHelper.nullableStreamOf(org.jboss.pnc.common.util.StreamHelper.nullableStreamOf) BuildRecordPredicates.buildFinishedBefore(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.buildFinishedBefore) LongBase32IdConverter(org.jboss.pnc.common.pnc.LongBase32IdConverter) Date(java.util.Date) Spliterators(java.util.Spliterators) URISyntaxException(java.net.URISyntaxException) LoggerFactory(org.slf4j.LoggerFactory) BuildConfigurationAuditedRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigurationAuditedRepository) GraphUtils(org.jboss.pnc.common.graph.GraphUtils) BuildConfigurationAudited(org.jboss.pnc.model.BuildConfigurationAudited) EmptyEntityException(org.jboss.pnc.facade.validation.EmptyEntityException) DefaultPageInfo(org.jboss.pnc.spi.datastore.repositories.api.impl.DefaultPageInfo) UserService(org.jboss.pnc.facade.util.UserService) Graph(org.jboss.pnc.dto.response.Graph) BuildRecordPredicates.withUserId(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withUserId) BuildConfigurationRevisionMapper(org.jboss.pnc.mapper.api.BuildConfigurationRevisionMapper) URI(java.net.URI) Stateless(javax.ejb.Stateless) PermitAll(javax.annotation.security.PermitAll) Collection(java.util.Collection) Artifact(org.jboss.pnc.model.Artifact) BuildCoordinator(org.jboss.pnc.spi.coordinator.BuildCoordinator) Result(org.jboss.pnc.spi.coordinator.Result) BuildRecordInsights(org.jboss.pnc.dto.insights.BuildRecordInsights) RepositoryViolationException(org.jboss.pnc.facade.validation.RepositoryViolationException) Math.min(java.lang.Math.min) Collectors(java.util.stream.Collectors) BuildStatus(org.jboss.pnc.enums.BuildStatus) Objects(java.util.Objects) BuildRecordPredicates.withBuildConfigSetRecordId(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withBuildConfigSetRecordId) List(java.util.List) GerritException(org.jboss.pnc.common.gerrit.GerritException) ConflictedEntryException(org.jboss.pnc.facade.validation.ConflictedEntryException) Optional(java.util.Optional) BuildRecordPredicates.withAttribute(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withAttribute) Spliterator(java.util.Spliterator) BuildRecordPredicates.withoutAttribute(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withoutAttribute) BuildConfigSetRecord(org.jboss.pnc.model.BuildConfigSetRecord) SortInfo(org.jboss.pnc.spi.datastore.repositories.api.SortInfo) Getter(lombok.Getter) Predicate(org.jboss.pnc.spi.datastore.repositories.api.Predicate) Function(java.util.function.Function) BuildMapper(org.jboss.pnc.mapper.api.BuildMapper) HashSet(java.util.HashSet) Inject(javax.inject.Inject) BuildRecordRepository(org.jboss.pnc.spi.datastore.repositories.BuildRecordRepository) GraphBuilder(org.jboss.pnc.common.graph.GraphBuilder) Attributes(org.jboss.pnc.constants.Attributes) MergeIterator(org.jboss.pnc.facade.util.MergeIterator) NoSuchElementException(java.util.NoSuchElementException) SSHCredentials(org.jboss.pnc.dto.response.SSHCredentials) ArtifactPredicates.withIds(org.jboss.pnc.spi.datastore.predicates.ArtifactPredicates.withIds) TimeUtils(org.jboss.pnc.common.util.TimeUtils) Logger(org.slf4j.Logger) Iterator(java.util.Iterator) BuildRecordPredicates.withArtifactDependency(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withArtifactDependency) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) BuildConfigurationPredicates.withProjectId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withProjectId) Consumer(java.util.function.Consumer) BuildRecordPredicates.temporaryBuild(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.temporaryBuild) GraphDtoBuilder(org.jboss.pnc.facade.util.GraphDtoBuilder) Build(org.jboss.pnc.dto.Build) BuildRecordPredicates.withBuildConfigurationIds(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.withBuildConfigurationIds) Comparator(java.util.Comparator) Collections(java.util.Collections) BuildTask(org.jboss.pnc.spi.coordinator.BuildTask) BuildRecordPredicates.temporaryBuild(org.jboss.pnc.spi.datastore.predicates.BuildRecordPredicates.temporaryBuild) Build(org.jboss.pnc.dto.Build)

Example 27 with Build

use of org.jboss.pnc.dto.Build in project pnc by project-ncl.

the class BuildConfigurationProviderImpl method createWithScm.

@Override
public BuildConfigCreationResponse createWithScm(BuildConfigWithSCMRequest request) {
    ValidationBuilder.validateObject(request, WhenCreatingNew.class).validateNotEmptyArgument().validateAnnotations();
    BuildConfiguration buildConfiguration = request.getBuildConfig();
    validateBeforeSaving(buildConfiguration.toBuilder().scmRepository(FAKE_REPOSITORY).build());
    Long buildConfigurationId = sequenceHandlerRepository.getNextID(org.jboss.pnc.model.BuildConfiguration.SEQUENCE_NAME);
    MDCUtils.addProcessContext(buildConfigurationId.toString());
    BuildConfiguration newBuildConfigurationWithId = buildConfiguration.toBuilder().id(buildConfigurationId.toString()).build();
    RepositoryCreationResponse rcResponse = scmRepositoryProvider.createSCMRepository(request.getScmUrl(), request.getBuildConfig().getScmRevision(), request.getPreBuildSyncEnabled(), JobNotificationType.BUILD_CONFIG_CREATION, // consumer is deprecated with new stateless approach
    MDCWrappers.wrap(event -> {
        createBuildConfigurationWithRepository(event.getTaskId() == null ? null : event.getTaskId().toString(), event.getRepositoryId(), newBuildConfigurationWithId);
    }), Optional.of(newBuildConfigurationWithId));
    BuildConfigCreationResponse response;
    if (rcResponse.getTaskId() == null) {
        // scm is internal, not running a RepositoryCreationTask.
        // onRCCreationSuccess already called with id = rcResponse.getRepository().getId()
        org.jboss.pnc.model.BuildConfiguration buildConfigurationFromDB = repository.queryByPredicates(withName(newBuildConfigurationWithId.getName()), isNotArchived());
        response = new BuildConfigCreationResponse(mapper.toDTO(buildConfigurationFromDB));
    } else {
        response = new BuildConfigCreationResponse(rcResponse.getTaskId().toString());
    }
    MDCUtils.removeProcessContext();
    return response;
}
Also used : BuildConfiguration(org.jboss.pnc.dto.BuildConfiguration) BuildConfigurationPredicates.withDependencyConfiguration(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withDependencyConfiguration) Notifier(org.jboss.pnc.spi.notifications.Notifier) Date(java.util.Date) BuildConfigurationSetRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigurationSetRepository) LoggerFactory(org.slf4j.LoggerFactory) BuildConfigurationAuditedRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigurationAuditedRepository) BuildConfigurationPredicates.withScmRepositoryId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withScmRepositoryId) MDCUtils(org.jboss.pnc.common.logging.MDCUtils) BuildConfigurationMapper(org.jboss.pnc.mapper.api.BuildConfigurationMapper) BuildEnvironment(org.jboss.pnc.model.BuildEnvironment) BuildConfigurationAudited(org.jboss.pnc.model.BuildConfigurationAudited) EmptyEntityException(org.jboss.pnc.facade.validation.EmptyEntityException) RepositoryCreationResponse(org.jboss.pnc.dto.response.RepositoryCreationResponse) User(org.jboss.pnc.dto.User) UserService(org.jboss.pnc.facade.util.UserService) Map(java.util.Map) BuildConfigurationRevisionMapper(org.jboss.pnc.mapper.api.BuildConfigurationRevisionMapper) SCMRepositoryProvider(org.jboss.pnc.facade.providers.api.SCMRepositoryProvider) BuildConfigurationRevision(org.jboss.pnc.dto.BuildConfigurationRevision) BuildConfigurationRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigurationRepository) WhenCreatingNew(org.jboss.pnc.dto.validation.groups.WhenCreatingNew) BuildRef(org.jboss.pnc.dto.BuildRef) Stateless(javax.ejb.Stateless) PermitAll(javax.annotation.security.PermitAll) BuildCoordinator(org.jboss.pnc.spi.coordinator.BuildCoordinator) BuildProvider(org.jboss.pnc.facade.providers.api.BuildProvider) ValidationBuilder(org.jboss.pnc.facade.validation.ValidationBuilder) Set(java.util.Set) RepositoryViolationException(org.jboss.pnc.facade.validation.RepositoryViolationException) Collectors(java.util.stream.Collectors) BuildConfigCreationResponse(org.jboss.pnc.dto.response.BuildConfigCreationResponse) IdRev(org.jboss.pnc.model.IdRev) BuildConfigurationPredicates.withDependantConfiguration(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withDependantConfiguration) Objects(java.util.Objects) SequenceHandlerRepository(org.jboss.pnc.spi.datastore.repositories.SequenceHandlerRepository) List(java.util.List) ConflictedEntryValidator(org.jboss.pnc.facade.validation.ConflictedEntryValidator) RepositoryConfigurationRepository(org.jboss.pnc.spi.datastore.repositories.RepositoryConfigurationRepository) ConflictedEntryException(org.jboss.pnc.facade.validation.ConflictedEntryException) BuildConfigurationPredicates.isNotArchived(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.isNotArchived) Optional(java.util.Optional) BuildConfigurationPredicates.withProductVersionId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withProductVersionId) BuildConfigWithSCMRequest(org.jboss.pnc.dto.requests.BuildConfigWithSCMRequest) ProjectRepository(org.jboss.pnc.spi.datastore.repositories.ProjectRepository) BuildConfigurationCreation(org.jboss.pnc.dto.notification.BuildConfigurationCreation) JobNotificationType(org.jboss.pnc.enums.JobNotificationType) BuildConfigurationSet(org.jboss.pnc.model.BuildConfigurationSet) BuildTask(org.jboss.pnc.spi.coordinator.BuildTask) BuildEnvironmentRepository(org.jboss.pnc.spi.datastore.repositories.BuildEnvironmentRepository) BuildMapper(org.jboss.pnc.mapper.api.BuildMapper) ArrayList(java.util.ArrayList) BuildConfigurationRef(org.jboss.pnc.dto.BuildConfigurationRef) BuildRecordRepository(org.jboss.pnc.spi.datastore.repositories.BuildRecordRepository) Inject(javax.inject.Inject) HashSet(java.util.HashSet) UserMapper(org.jboss.pnc.mapper.api.UserMapper) SCMRepositoryMapper(org.jboss.pnc.mapper.api.SCMRepositoryMapper) DTOValidationException(org.jboss.pnc.facade.validation.DTOValidationException) BuildConfigurationProvider(org.jboss.pnc.facade.providers.api.BuildConfigurationProvider) ProductVersionRepository(org.jboss.pnc.spi.datastore.repositories.ProductVersionRepository) WhenUpdating(org.jboss.pnc.dto.validation.groups.WhenUpdating) Logger(org.slf4j.Logger) RepositoryConfiguration(org.jboss.pnc.model.RepositoryConfiguration) BuildRecord(org.jboss.pnc.model.BuildRecord) BuildConfigurationPredicates.withProjectId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withProjectId) Page(org.jboss.pnc.dto.response.Page) Build(org.jboss.pnc.dto.Build) BuildConfiguration(org.jboss.pnc.dto.BuildConfiguration) InvalidEntityException(org.jboss.pnc.facade.validation.InvalidEntityException) BuildConfigurationWithLatestBuild(org.jboss.pnc.dto.BuildConfigurationWithLatestBuild) SCMRepository(org.jboss.pnc.dto.SCMRepository) StreamHelper.nullableStreamOf(org.jboss.pnc.common.util.StreamHelper.nullableStreamOf) MDCWrappers(org.jboss.pnc.common.concurrent.MDCWrappers) Comparator(java.util.Comparator) BuildConfigurationPredicates.withName(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withName) Collections(java.util.Collections) BuildConfigurationPredicates.withBuildConfigurationSetId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withBuildConfigurationSetId) BuildConfigCreationResponse(org.jboss.pnc.dto.response.BuildConfigCreationResponse) RepositoryCreationResponse(org.jboss.pnc.dto.response.RepositoryCreationResponse)

Example 28 with Build

use of org.jboss.pnc.dto.Build in project pnc by project-ncl.

the class BuildConfigurationProviderImpl method populateBuildConfigWithLatestBuild.

private BuildConfigurationWithLatestBuild populateBuildConfigWithLatestBuild(BuildConfiguration buildConfig, List<BuildRecord> latestBuilds, List<BuildTask> runningBuilds) {
    Integer bcId = mapper.getIdMapper().toEntity(buildConfig.getId());
    Optional<BuildTask> latestBuildTask = runningBuilds.stream().filter(Objects::nonNull).filter(bt -> bt.getBuildConfigurationAudited().getId().equals(bcId)).max(Comparator.comparing(BuildTask::getSubmitTime));
    Optional<BuildRecord> latestBuildRecord = latestBuilds.stream().filter(br -> br.getBuildConfigurationId().equals(bcId)).findFirst();
    BuildRef latestBuild = latestBuildTask.map((bt -> (BuildRef) buildMapper.fromBuildTask(bt))).orElse(latestBuildRecord.map(buildMapper::toRef).orElse(null));
    String latestBuildUsername = latestBuildTask.map(bt -> bt.getUser().getUsername()).orElse(latestBuildRecord.map(br -> br.getUser().getUsername()).orElse(null));
    return BuildConfigurationWithLatestBuild.builderWithLatestBuild().buildConfig(buildConfig).latestBuild(latestBuild).latestBuildUsername(latestBuildUsername).build();
}
Also used : BuildConfigurationPredicates.withDependencyConfiguration(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withDependencyConfiguration) Notifier(org.jboss.pnc.spi.notifications.Notifier) Date(java.util.Date) BuildConfigurationSetRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigurationSetRepository) LoggerFactory(org.slf4j.LoggerFactory) BuildConfigurationAuditedRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigurationAuditedRepository) BuildConfigurationPredicates.withScmRepositoryId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withScmRepositoryId) MDCUtils(org.jboss.pnc.common.logging.MDCUtils) BuildConfigurationMapper(org.jboss.pnc.mapper.api.BuildConfigurationMapper) BuildEnvironment(org.jboss.pnc.model.BuildEnvironment) BuildConfigurationAudited(org.jboss.pnc.model.BuildConfigurationAudited) EmptyEntityException(org.jboss.pnc.facade.validation.EmptyEntityException) RepositoryCreationResponse(org.jboss.pnc.dto.response.RepositoryCreationResponse) User(org.jboss.pnc.dto.User) UserService(org.jboss.pnc.facade.util.UserService) Map(java.util.Map) BuildConfigurationRevisionMapper(org.jboss.pnc.mapper.api.BuildConfigurationRevisionMapper) SCMRepositoryProvider(org.jboss.pnc.facade.providers.api.SCMRepositoryProvider) BuildConfigurationRevision(org.jboss.pnc.dto.BuildConfigurationRevision) BuildConfigurationRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigurationRepository) WhenCreatingNew(org.jboss.pnc.dto.validation.groups.WhenCreatingNew) BuildRef(org.jboss.pnc.dto.BuildRef) Stateless(javax.ejb.Stateless) PermitAll(javax.annotation.security.PermitAll) BuildCoordinator(org.jboss.pnc.spi.coordinator.BuildCoordinator) BuildProvider(org.jboss.pnc.facade.providers.api.BuildProvider) ValidationBuilder(org.jboss.pnc.facade.validation.ValidationBuilder) Set(java.util.Set) RepositoryViolationException(org.jboss.pnc.facade.validation.RepositoryViolationException) Collectors(java.util.stream.Collectors) BuildConfigCreationResponse(org.jboss.pnc.dto.response.BuildConfigCreationResponse) IdRev(org.jboss.pnc.model.IdRev) BuildConfigurationPredicates.withDependantConfiguration(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withDependantConfiguration) Objects(java.util.Objects) SequenceHandlerRepository(org.jboss.pnc.spi.datastore.repositories.SequenceHandlerRepository) List(java.util.List) ConflictedEntryValidator(org.jboss.pnc.facade.validation.ConflictedEntryValidator) RepositoryConfigurationRepository(org.jboss.pnc.spi.datastore.repositories.RepositoryConfigurationRepository) ConflictedEntryException(org.jboss.pnc.facade.validation.ConflictedEntryException) BuildConfigurationPredicates.isNotArchived(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.isNotArchived) Optional(java.util.Optional) BuildConfigurationPredicates.withProductVersionId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withProductVersionId) BuildConfigWithSCMRequest(org.jboss.pnc.dto.requests.BuildConfigWithSCMRequest) ProjectRepository(org.jboss.pnc.spi.datastore.repositories.ProjectRepository) BuildConfigurationCreation(org.jboss.pnc.dto.notification.BuildConfigurationCreation) JobNotificationType(org.jboss.pnc.enums.JobNotificationType) BuildConfigurationSet(org.jboss.pnc.model.BuildConfigurationSet) BuildTask(org.jboss.pnc.spi.coordinator.BuildTask) BuildEnvironmentRepository(org.jboss.pnc.spi.datastore.repositories.BuildEnvironmentRepository) BuildMapper(org.jboss.pnc.mapper.api.BuildMapper) ArrayList(java.util.ArrayList) BuildConfigurationRef(org.jboss.pnc.dto.BuildConfigurationRef) BuildRecordRepository(org.jboss.pnc.spi.datastore.repositories.BuildRecordRepository) Inject(javax.inject.Inject) HashSet(java.util.HashSet) UserMapper(org.jboss.pnc.mapper.api.UserMapper) SCMRepositoryMapper(org.jboss.pnc.mapper.api.SCMRepositoryMapper) DTOValidationException(org.jboss.pnc.facade.validation.DTOValidationException) BuildConfigurationProvider(org.jboss.pnc.facade.providers.api.BuildConfigurationProvider) ProductVersionRepository(org.jboss.pnc.spi.datastore.repositories.ProductVersionRepository) WhenUpdating(org.jboss.pnc.dto.validation.groups.WhenUpdating) Logger(org.slf4j.Logger) RepositoryConfiguration(org.jboss.pnc.model.RepositoryConfiguration) BuildRecord(org.jboss.pnc.model.BuildRecord) BuildConfigurationPredicates.withProjectId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withProjectId) Page(org.jboss.pnc.dto.response.Page) Build(org.jboss.pnc.dto.Build) BuildConfiguration(org.jboss.pnc.dto.BuildConfiguration) InvalidEntityException(org.jboss.pnc.facade.validation.InvalidEntityException) BuildConfigurationWithLatestBuild(org.jboss.pnc.dto.BuildConfigurationWithLatestBuild) SCMRepository(org.jboss.pnc.dto.SCMRepository) StreamHelper.nullableStreamOf(org.jboss.pnc.common.util.StreamHelper.nullableStreamOf) MDCWrappers(org.jboss.pnc.common.concurrent.MDCWrappers) Comparator(java.util.Comparator) BuildConfigurationPredicates.withName(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withName) Collections(java.util.Collections) BuildConfigurationPredicates.withBuildConfigurationSetId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withBuildConfigurationSetId) BuildRef(org.jboss.pnc.dto.BuildRef) BuildTask(org.jboss.pnc.spi.coordinator.BuildTask) Objects(java.util.Objects) BuildRecord(org.jboss.pnc.model.BuildRecord)

Example 29 with Build

use of org.jboss.pnc.dto.Build in project bacon by project-ncl.

the class BuildInfoCollector method getLatestBuild.

public PncBuild getLatestBuild(String configId, BuildSearchType searchType) {
    try {
        BuildsFilterParameters filter = new BuildsFilterParameters();
        Optional<String> queryParam;
        switch(searchType) {
            case ANY:
                queryParam = query("status==%s", BuildStatus.SUCCESS);
                break;
            case PERMANENT:
                queryParam = query("status==%s;temporaryBuild==%s", BuildStatus.SUCCESS, false);
                break;
            case TEMPORARY:
                // NCL-5943 Cannot ignore permanent(regular) builds because they cause NO_REBUILD_REQUIRED even for
                // temporary builds. That means "latest build" for a temporary build can be permanent(regular).
                queryParam = query("status==%s", BuildStatus.SUCCESS);
                break;
            default:
                queryParam = Optional.empty();
        }
        // Note: sort by id not allowed
        Iterator<Build> buildIterator = buildConfigClient.getBuilds(configId, filter, of("=desc=submitTime"), queryParam).iterator();
        if (!buildIterator.hasNext()) {
            throw new NoSuccessfulBuildException(configId);
        }
        Build build = buildIterator.next();
        PncBuild result = new PncBuild(build);
        result.addBuiltArtifacts(toList(buildClient.getBuiltArtifacts(build.getId())));
        return result;
    } catch (ClientException e) {
        throw new RuntimeException("Failed to get latest successful build for " + configId, e);
    }
}
Also used : GroupBuild(org.jboss.pnc.dto.GroupBuild) Build(org.jboss.pnc.dto.Build) ClientException(org.jboss.pnc.client.ClientException) BuildsFilterParameters(org.jboss.pnc.rest.api.parameters.BuildsFilterParameters)

Example 30 with Build

use of org.jboss.pnc.dto.Build in project bacon by project-ncl.

the class BuildInfoCollector method getBuildsFromGroupBuild.

/**
 * Get all the builds done in a build group. If the build finished with 'NO_REBUILD_REQUIRED', get the 'original'
 * successful build and return it instead If the build was successful, we don't grab the logs since they can be
 * quite long.
 *
 * @param groupBuild the group build to get the builds
 * @return The information on the group build and the builds performed
 */
public GroupBuildInfo getBuildsFromGroupBuild(GroupBuild groupBuild) {
    Map<String, PncBuild> result = new HashMap<>();
    BuildsFilterParameters filter = new BuildsFilterParameters();
    filter.setLatest(false);
    filter.setRunning(false);
    try {
        Collection<Build> builds = groupBuildClient.getBuilds(groupBuild.getId(), filter).getAll();
        for (Build build : builds) {
            PncBuild pncBuild;
            if (build.getStatus() == BuildStatus.NO_REBUILD_REQUIRED) {
                BuildRef buildRef = build.getNoRebuildCause();
                Build realBuild = buildClient.getSpecific(buildRef.getId());
                pncBuild = new PncBuild(realBuild);
            } else {
                pncBuild = new PncBuild(build);
            }
            pncBuild.addBuiltArtifacts(toList(buildClient.getBuiltArtifacts(pncBuild.getId())));
            result.put(pncBuild.getName(), pncBuild);
        }
        return new GroupBuildInfo(groupBuild, result);
    } catch (RemoteResourceException e) {
        throw new RuntimeException("Failed to get group build info for " + groupBuild.getId(), e);
    }
}
Also used : BuildRef(org.jboss.pnc.dto.BuildRef) RemoteResourceException(org.jboss.pnc.client.RemoteResourceException) HashMap(java.util.HashMap) GroupBuild(org.jboss.pnc.dto.GroupBuild) Build(org.jboss.pnc.dto.Build) GroupBuildInfo(org.jboss.pnc.bacon.pig.impl.config.GroupBuildInfo) BuildsFilterParameters(org.jboss.pnc.rest.api.parameters.BuildsFilterParameters)

Aggregations

Build (org.jboss.pnc.dto.Build)71 Test (org.junit.Test)52 ContainerTest (org.jboss.pnc.test.category.ContainerTest)35 BuildClient (org.jboss.pnc.client.BuildClient)20 BuildRecord (org.jboss.pnc.model.BuildRecord)18 BuildTask (org.jboss.pnc.spi.coordinator.BuildTask)16 BuildStatus (org.jboss.pnc.enums.BuildStatus)15 GroupBuild (org.jboss.pnc.dto.GroupBuild)14 BuildPageInfo (org.jboss.pnc.facade.providers.api.BuildPageInfo)14 ArrayList (java.util.ArrayList)12 BuildConfiguration (org.jboss.pnc.dto.BuildConfiguration)11 HashSet (java.util.HashSet)10 List (java.util.List)10 Set (java.util.Set)10 Logger (org.slf4j.Logger)10 LoggerFactory (org.slf4j.LoggerFactory)10 Date (java.util.Date)9 Page (org.jboss.pnc.dto.response.Page)9 BuildMapper (org.jboss.pnc.mapper.api.BuildMapper)9 BuildConfigurationAudited (org.jboss.pnc.model.BuildConfigurationAudited)9