Search in sources :

Example 6 with RepositoryConfiguration

use of org.jboss.pnc.model.RepositoryConfiguration in project pnc by project-ncl.

the class BuildConfigurationProviderImpl method createBuildConfigurationWithRepository.

public void createBuildConfigurationWithRepository(String taskId, int scmRepositoryId, BuildConfiguration configuration) {
    RepositoryConfiguration repositoryConfiguration = repositoryConfigurationRepository.queryById(scmRepositoryId);
    final boolean sendMessage = taskId != null;
    if (repositoryConfiguration == null) {
        String errorMessage = "Repository Configuration was not found in database.";
        logger.error(errorMessage);
        if (sendMessage) {
            sendErrorMessage(SCMRepository.builder().id(Integer.toString(scmRepositoryId)).build(), null, errorMessage, taskId);
            return;
        }
        throw new RepositoryViolationException("Repository Configuration was not found in database.");
    }
    org.jboss.pnc.model.BuildConfiguration buildConfiguration = mapper.toEntity(configuration);
    buildConfiguration.setRepositoryConfiguration(repositoryConfiguration);
    org.jboss.pnc.model.BuildConfiguration buildConfigurationSaved = repository.save(buildConfiguration);
    Set<Integer> bcSetIds;
    if (configuration.getGroupConfigs() == null) {
        bcSetIds = Collections.emptySet();
    } else {
        bcSetIds = configuration.getGroupConfigs().keySet().stream().map(Integer::valueOf).collect(Collectors.toSet());
    }
    SCMRepository scmRepository = scmRepositoryMapper.toDTO(repositoryConfiguration);
    BuildConfiguration buildConfig = mapper.toDTO(buildConfigurationSaved);
    try {
        addBuildConfigurationToSet(buildConfigurationSaved, bcSetIds);
    } catch (Exception e) {
        logger.error(e.getMessage());
        if (sendMessage) {
            sendErrorMessage(scmRepository, buildConfig, e.getMessage(), taskId);
            return;
        }
        throw new RepositoryViolationException("Failed to add BuildConfig to BuildConfigSets.");
    }
    logger.info("Created Build Configuration with Repository: {}.", buildConfig);
    if (sendMessage) {
        BuildConfigurationCreation successMessage = BuildConfigurationCreation.success(scmRepository, buildConfig, taskId);
        notifier.sendMessage(successMessage);
    }
}
Also used : BuildConfigurationCreation(org.jboss.pnc.dto.notification.BuildConfigurationCreation) EmptyEntityException(org.jboss.pnc.facade.validation.EmptyEntityException) RepositoryViolationException(org.jboss.pnc.facade.validation.RepositoryViolationException) ConflictedEntryException(org.jboss.pnc.facade.validation.ConflictedEntryException) DTOValidationException(org.jboss.pnc.facade.validation.DTOValidationException) InvalidEntityException(org.jboss.pnc.facade.validation.InvalidEntityException) BuildConfiguration(org.jboss.pnc.dto.BuildConfiguration) RepositoryViolationException(org.jboss.pnc.facade.validation.RepositoryViolationException) RepositoryConfiguration(org.jboss.pnc.model.RepositoryConfiguration) SCMRepository(org.jboss.pnc.dto.SCMRepository)

Example 7 with RepositoryConfiguration

use of org.jboss.pnc.model.RepositoryConfiguration in project pnc by project-ncl.

the class Producers method repositoryConfiguration.

RepositoryConfiguration repositoryConfiguration() {
    RepositoryConfiguration repositoryConfiguration = RepositoryConfiguration.Builder.newBuilder().internalUrl(randomAlphabetic(20)).build();
    repositoryConfigurationRepository.save(repositoryConfiguration);
    return repositoryConfiguration;
}
Also used : RepositoryConfiguration(org.jboss.pnc.model.RepositoryConfiguration)

Example 8 with RepositoryConfiguration

use of org.jboss.pnc.model.RepositoryConfiguration in project pnc by project-ncl.

the class DatabaseDataInitializer method initiliazeProjectProductData.

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void initiliazeProjectProductData() {
    BuildEnvironment environment1Unsaved = BuildEnvironment.Builder.newBuilder().name("Demo Environment 1").description("Basic Java and Maven Environment").attribute("JDK", "1.7.0").attribute("OS", "Linux").systemImageId("12345678").systemImageRepositoryUrl("my.registry/newcastle").systemImageType(SystemImageType.DOCKER_IMAGE).deprecated(false).build();
    BuildEnvironment environment1 = environmentRepository.save(environment1Unsaved);
    BuildEnvironment environment2Unsaved = BuildEnvironment.Builder.newBuilder().name("Demo Environment 2").description("Basic Java and Maven Environment").attribute("JDK", "1.7.0").attribute("OS", "Linux").systemImageId("12345679").systemImageRepositoryUrl("my.registry/newcastle").systemImageType(SystemImageType.DOCKER_IMAGE).deprecated(true).build();
    BuildEnvironment environment2 = environmentRepository.save(environment2Unsaved);
    /*
         * All the bi-directional mapping settings are managed inside the Builders
         */
    // Example product and product version
    Product product = Product.Builder.newBuilder().name(PNC_PRODUCT_NAME).abbreviation("PNC").description("Example Product for Project Newcastle Demo").build();
    product = productRepository.save(product);
    // Example product version, release, and milestone of the product
    ProductVersion productVersion1 = ProductVersion.Builder.newBuilder().version(PNC_PRODUCT_VERSION_1).product(product).generateBrewTagPrefix(product.getAbbreviation(), PNC_PRODUCT_VERSION_1, systemConfig.getBrewTagPattern()).build();
    productVersion1 = productVersionRepository.save(productVersion1);
    ProductVersion productVersion2 = ProductVersion.Builder.newBuilder().version(PNC_PRODUCT_VERSION_2).product(product).generateBrewTagPrefix(product.getAbbreviation(), PNC_PRODUCT_VERSION_2, systemConfig.getBrewTagPattern()).build();
    productVersion2 = productVersionRepository.save(productVersion2);
    demoProductMilestone1 = ProductMilestone.Builder.newBuilder().version(PNC_PRODUCT_MILESTONE1).startingDate(ONE_WEEK_BEFORE_TODAY).plannedEndDate(TODAY).productVersion(productVersion1).build();
    demoProductMilestone1 = productMilestoneRepository.save(demoProductMilestone1);
    ProductMilestone demoProductMilestone2 = ProductMilestone.Builder.newBuilder().version(PNC_PRODUCT_MILESTONE2).startingDate(TODAY).plannedEndDate(ONE_WEEK_AFTER_TODAY).productVersion(productVersion1).build();
    demoProductMilestone2 = productMilestoneRepository.save(demoProductMilestone2);
    Instant t0 = TODAY.toInstant();
    Instant successTime = t0.plus(10, ChronoUnit.MINUTES);
    ProductMilestone demoProductMilestone3 = ProductMilestone.Builder.newBuilder().version(PNC_PRODUCT_MILESTONE3).startingDate(TODAY).plannedEndDate(ONE_WEEK_AFTER_TODAY).endDate(ONE_WEEK_AFTER_TODAY).productVersion(productVersion1).build();
    demoProductMilestone3 = productMilestoneRepository.save(demoProductMilestone3);
    ProductMilestone demoProductMilestone4 = ProductMilestone.Builder.newBuilder().version(PNC_PRODUCT_MILESTONE4).startingDate(TODAY).plannedEndDate(ONE_WEEK_AFTER_TODAY).endDate(ONE_WEEK_AFTER_TODAY).productVersion(productVersion1).build();
    demoProductMilestone4 = productMilestoneRepository.save(demoProductMilestone4);
    ProductMilestoneRelease milestoneRelease1 = new ProductMilestoneRelease();
    milestoneRelease1.setId(Sequence.nextId());
    milestoneRelease1.setMilestone(demoProductMilestone3);
    // first store with latter starting date to test sort function
    milestoneRelease1.setStartingDate(Date.from(t0.plus(2, ChronoUnit.MINUTES)));
    milestoneRelease1.setStatus(MilestoneCloseStatus.SYSTEM_ERROR);
    productMilestoneReleaseRepository.save(milestoneRelease1);
    ProductMilestoneRelease milestoneRelease2 = new ProductMilestoneRelease();
    milestoneRelease2.setId(Sequence.nextId());
    milestoneRelease2.setMilestone(demoProductMilestone3);
    milestoneRelease2.setStartingDate(Date.from(t0));
    milestoneRelease2.setStatus(MilestoneCloseStatus.FAILED);
    productMilestoneReleaseRepository.save(milestoneRelease2);
    ProductMilestoneRelease milestoneRelease3 = new ProductMilestoneRelease();
    milestoneRelease3.setId(Sequence.nextId());
    milestoneRelease3.setMilestone(demoProductMilestone3);
    milestoneRelease3.setStartingDate(Date.from(successTime));
    milestoneRelease3.setStatus(MilestoneCloseStatus.SUCCEEDED);
    productMilestoneReleaseRepository.save(milestoneRelease3);
    ProductRelease productRelease = ProductRelease.Builder.newBuilder().version(PNC_PRODUCT_RELEASE).productMilestone(demoProductMilestone1).supportLevel(SupportLevel.EARLYACCESS).build();
    productRelease = productReleaseRepository.save(productRelease);
    productVersion1.setCurrentProductMilestone(demoProductMilestone3);
    productVersion1 = productVersionRepository.save(productVersion1);
    // Example projects
    Project project1 = Project.Builder.newBuilder().name(PNC_PROJECT_1_NAME).description("Example Project for Newcastle Demo").projectUrl("https://github.com/project-ncl/pnc").build();
    Project project2 = Project.Builder.newBuilder().name("Causeway").description("Causeway - Koji integration").projectUrl("https://github.com/project-ncl/causeway").build();
    Project project3 = Project.Builder.newBuilder().name("Pnc Build Agent").description("Pnc Build Agent - remote client to execute commands.").projectUrl("https://github.com/project-ncl/pnc-build-agent").build();
    Project project4 = Project.Builder.newBuilder().name("Dependency Analysis").description("Dependency Analysis - Analise project dependencies.").projectUrl("https://github.com/project-ncl/dependency-analysis").build();
    Project project5 = Project.Builder.newBuilder().name("termd").description("Remote shell.").projectUrl("https://github.com/project-ncl/termd").build();
    projectRepository.save(project1);
    projectRepository.save(project2);
    projectRepository.save(project3);
    projectRepository.save(project4);
    projectRepository.save(project5);
    RepositoryConfiguration repositoryConfiguration1 = createRepositoryConfiguration(demoDataConfig.getInternalRepo(0), "https://github.com/project-ncl/pnc.git");
    RepositoryConfiguration repositoryConfiguration2 = createRepositoryConfiguration(demoDataConfig.getInternalRepo(1), null);
    RepositoryConfiguration repositoryConfiguration3 = createRepositoryConfiguration(demoDataConfig.getInternalRepo(2), null);
    RepositoryConfiguration repositoryConfiguration4 = createRepositoryConfiguration(demoDataConfig.getInternalRepo(3), null);
    RepositoryConfiguration repositoryConfiguration5 = createRepositoryConfiguration(demoDataConfig.getInternalRepo(4), null);
    repositoryConfigurationRepository.save(repositoryConfiguration1);
    repositoryConfigurationRepository.save(repositoryConfiguration2);
    repositoryConfigurationRepository.save(repositoryConfiguration3);
    repositoryConfigurationRepository.save(repositoryConfiguration4);
    repositoryConfigurationRepository.save(repositoryConfiguration5);
    // Example build configurations
    Map<String, String> genericParameters = new HashMap<>();
    genericParameters.put("KEY", "VALUE");
    buildConfiguration1 = BuildConfiguration.Builder.newBuilder().id(sequenceHandlerRepository.getNextID(BuildConfiguration.SEQUENCE_NAME).intValue()).name(PNC_PROJECT_BUILD_CFG_ID).project(project1).description("Test build config for project newcastle").buildType(BuildType.MVN).buildEnvironment(environment1).buildScript("mvn deploy -DskipTests=true").repositoryConfiguration(repositoryConfiguration1).productVersion(productVersion1).scmRevision("*/v0.2").genericParameters(genericParameters).build();
    buildConfiguration1 = buildConfigurationRepository.save(buildConfiguration1);
    buildConfiguration2 = BuildConfiguration.Builder.newBuilder().id(sequenceHandlerRepository.getNextID(BuildConfiguration.SEQUENCE_NAME).intValue()).name("termd").project(project2).buildType(BuildType.MVN).description("Test configueration for Termd.").buildEnvironment(environment1).buildScript("mvn deploy -DskipTests=true").productVersion(productVersion1).repositoryConfiguration(repositoryConfiguration2).scmRevision("master").build();
    buildConfiguration2 = buildConfigurationRepository.save(buildConfiguration2);
    BuildConfiguration buildConfiguration3 = BuildConfiguration.Builder.newBuilder().id(sequenceHandlerRepository.getNextID(BuildConfiguration.SEQUENCE_NAME).intValue()).name("pnc-build-agent-0.4").project(project3).description("Test config for Pnc Build Agent.").buildType(BuildType.MVN).buildEnvironment(environment1).buildScript("mvn deploy -DskipTests=true").productVersion(productVersion2).repositoryConfiguration(repositoryConfiguration3).dependency(buildConfiguration2).build();
    buildConfiguration3 = buildConfigurationRepository.save(buildConfiguration3);
    BuildConfiguration buildConfiguration4 = BuildConfiguration.Builder.newBuilder().id(sequenceHandlerRepository.getNextID(BuildConfiguration.SEQUENCE_NAME).intValue()).name("dependency-analysis-1.3").project(project4).description("Test config for Dependency Analysis.").buildType(BuildType.MVN).buildEnvironment(environment1).buildScript("mvn deploy -DskipTests=true").repositoryConfiguration(repositoryConfiguration4).dependency(buildConfiguration1).build();
    buildConfiguration4 = buildConfigurationRepository.save(buildConfiguration4);
    BuildConfiguration buildConfiguration5 = BuildConfiguration.Builder.newBuilder().id(sequenceHandlerRepository.getNextID(BuildConfiguration.SEQUENCE_NAME).intValue()).name("maven-plugin-test").project(project5).description("Test build for Plugins with external downloads").buildType(BuildType.MVN).buildEnvironment(environment1).buildScript("mvn clean deploy").repositoryConfiguration(repositoryConfiguration5).build();
    buildConfiguration5 = buildConfigurationRepository.save(buildConfiguration5);
    // Build config set containing the three example build configs
    buildConfigurationSet1 = BuildConfigurationSet.Builder.newBuilder().name("Example-Build-Group-1").buildConfiguration(buildConfiguration1).buildConfiguration(buildConfiguration2).buildConfiguration(buildConfiguration3).productVersion(productVersion1).build();
    BuildConfigurationSet buildConfigurationSet2 = BuildConfigurationSet.Builder.newBuilder().name("Fabric-Build-Group").buildConfiguration(buildConfiguration4).productVersion(productVersion1).build();
    demoUser = User.Builder.newBuilder().username("demo-user").firstName("Demo First Name").lastName("Demo Last Name").email("demo-user@pnc.com").build();
    pncAdminUser = User.Builder.newBuilder().username("pnc-admin").firstName("pnc-admin").lastName("pnc-admin").email("pnc-admin@pnc.com").build();
    buildConfigurationSetRepository.save(buildConfigurationSet1);
    buildConfigurationSetRepository.save(buildConfigurationSet2);
    demoUser = userRepository.save(demoUser);
    pncAdminUser = userRepository.save(pncAdminUser);
}
Also used : ProductMilestone(org.jboss.pnc.model.ProductMilestone) HashMap(java.util.HashMap) Instant(java.time.Instant) Product(org.jboss.pnc.model.Product) ProductVersion(org.jboss.pnc.model.ProductVersion) BuildConfiguration(org.jboss.pnc.model.BuildConfiguration) Project(org.jboss.pnc.model.Project) BuildConfigurationSet(org.jboss.pnc.model.BuildConfigurationSet) BuildEnvironment(org.jboss.pnc.model.BuildEnvironment) ProductRelease(org.jboss.pnc.model.ProductRelease) RepositoryConfiguration(org.jboss.pnc.model.RepositoryConfiguration) ProductMilestoneRelease(org.jboss.pnc.model.ProductMilestoneRelease) TransactionAttribute(javax.ejb.TransactionAttribute)

Example 9 with RepositoryConfiguration

use of org.jboss.pnc.model.RepositoryConfiguration in project pnc by project-ncl.

the class TestProjectConfigurationBuilder method build.

public BuildConfiguration build(int id, String name, BuildConfigurationSet buildConfigurationSet) {
    Project project = new Project();
    project.setId(id);
    project.setName(name);
    RepositoryConfiguration repositoryConfiguration = RepositoryConfiguration.Builder.newBuilder().id(id).internalUrl("github.com/" + name).build();
    BuildConfiguration buildConfiguration = new BuildConfiguration();
    buildConfiguration.setId(id);
    buildConfiguration.setBuildScript(PASS);
    buildConfiguration.setName(id + "");
    buildConfiguration.setRepositoryConfiguration(repositoryConfiguration);
    buildConfiguration.setBuildType(BuildType.MVN);
    buildConfiguration.setBuildEnvironment(javaBuildEnvironment);
    buildConfiguration.setProject(project);
    buildConfiguration.setProject(project);
    buildConfiguration.setArchived(false);
    project.addBuildConfiguration(buildConfiguration);
    if (buildConfigurationSet != null) {
        buildConfigurationSet.addBuildConfiguration(buildConfiguration);
    }
    datastore.save(buildConfiguration);
    return buildConfiguration;
}
Also used : BuildConfiguration(org.jboss.pnc.model.BuildConfiguration) Project(org.jboss.pnc.model.Project) RepositoryConfiguration(org.jboss.pnc.model.RepositoryConfiguration)

Example 10 with RepositoryConfiguration

use of org.jboss.pnc.model.RepositoryConfiguration in project pnc by project-ncl.

the class AbstractDependentBuildTest method updateConfiguration.

/**
 * Create a new revision
 */
protected BuildConfiguration updateConfiguration(BuildConfiguration buildConfiguration) {
    int id = configIdSequence.getAndIncrement();
    RepositoryConfiguration repositoryConfiguration = RepositoryConfiguration.Builder.newBuilder().internalUrl("http://path.to/repo.git").build();
    buildConfiguration.setRepositoryConfiguration(repositoryConfiguration);
    saveConfig(buildConfiguration);
    return buildConfiguration;
}
Also used : RepositoryConfiguration(org.jboss.pnc.model.RepositoryConfiguration)

Aggregations

RepositoryConfiguration (org.jboss.pnc.model.RepositoryConfiguration)12 SCMRepository (org.jboss.pnc.dto.SCMRepository)4 BuildConfiguration (org.jboss.pnc.dto.BuildConfiguration)3 RepositoryCreationFailure (org.jboss.pnc.dto.notification.RepositoryCreationFailure)3 ArrayList (java.util.ArrayList)2 List (java.util.List)2 Map (java.util.Map)2 Optional (java.util.Optional)2 Consumer (java.util.function.Consumer)2 Function (java.util.function.Function)2 Pattern (java.util.regex.Pattern)2 PermitAll (javax.annotation.security.PermitAll)2 Stateless (javax.ejb.Stateless)2 Inject (javax.inject.Inject)2 BpmEventType (org.jboss.pnc.bpm.BpmEventType)2 BpmManager (org.jboss.pnc.bpm.BpmManager)2 RestConnector (org.jboss.pnc.bpm.RestConnector)2 BpmStringMapNotificationRest (org.jboss.pnc.bpm.model.BpmStringMapNotificationRest)2 RepositoryCloneSuccess (org.jboss.pnc.bpm.model.RepositoryCloneSuccess)2 RepositoryCreationProcess (org.jboss.pnc.bpm.model.RepositoryCreationProcess)2