Search in sources :

Example 21 with BuildConfigurationAudited

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

the class DatastoreMock method getLatestBuildConfigurationAudited.

@Override
public BuildConfigurationAudited getLatestBuildConfigurationAudited(Integer buildConfigId) {
    BuildConfiguration buildConfig = buildConfigurations.get(buildConfigId);
    int rev = buildConfigAuditedRevSequence.incrementAndGet();
    BuildConfigurationAudited buildConfigurationAudited = BuildConfigurationAudited.Builder.newBuilder().buildConfiguration(buildConfig).rev(rev).build();
    return buildConfigurationAudited;
}
Also used : BuildConfiguration(org.jboss.pnc.model.BuildConfiguration) BuildConfigurationAudited(org.jboss.pnc.model.BuildConfigurationAudited)

Example 22 with BuildConfigurationAudited

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

the class DatabaseDataInitializer method initiliazeBuildRecordDemoData.

/**
 * Build record needs to be initialized in a separate transaction so that the audited build configuration can be
 * set.
 */
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void initiliazeBuildRecordDemoData() {
    TargetRepository targetRepository = TargetRepository.newBuilder().repositoryType(RepositoryType.MAVEN).repositoryPath("builds-untested").identifier(ReposiotryIdentifier.INDY_MAVEN).temporaryRepo(false).build();
    TargetRepository targetRepository2 = TargetRepository.newBuilder().repositoryType(RepositoryType.NPM).repositoryPath("builds-tested").identifier(ReposiotryIdentifier.INDY_NPM).temporaryRepo(true).build();
    targetRepositoryRepository.save(targetRepository);
    targetRepositoryRepository.save(targetRepository2);
    Artifact builtArtifact1 = Artifact.Builder.newBuilder().identifier("demo:built-artifact1:jar:1.0").targetRepository(targetRepository).filename("demo built artifact 1").md5("4af310bf0ef67bc7d143f35818ea1ed2").sha1("3a8ff25c890f2a4a283876a91037ff6c57474a14").sha256("1660168483cb8a05d1cc2e77c861682a42ed9517ba945159d5538950c5db00fa").deployPath("demo/built-artifact1/1.0/built-artifact1-1.0.jar").size(10L).artifactQuality(ArtifactQuality.NEW).buildCategory(BuildCategory.STANDARD).build();
    Artifact builtArtifact2 = Artifact.Builder.newBuilder().identifier("demo:built-artifact2:jar:1.0").targetRepository(targetRepository).filename("demo built artifact 2").md5("4af310bf0ef67bc7d143f35818ea1ed2").sha1("61dad16e14438d2d8c8cbd18b267d62944f37898").sha256("2fafc2ed0f752ac2540283d48c5cd663254a853c5cb13dec02dce023fc7471a9").deployPath("demo/built-artifact2/1.0/built-artifact2-1.0.jar").size(11L).artifactQuality(ArtifactQuality.VERIFIED).buildCategory(BuildCategory.STANDARD).build();
    Artifact builtArtifact3 = Artifact.Builder.newBuilder().identifier("demo:built-artifact11:pom:1.0").targetRepository(targetRepository2).filename("demo built artifact 11").md5("5c8e1503e77dc8e370610098e01f0a8e").sha1("550748f6f58ed8d4f6b63850a867ac207da30013").sha256("b39f88c9937f201981767e539025121971e72bc590ea20ed7fdfffafc05f55a9").deployPath("demo/built-artifact11/1.0/built-artifact11-1.0.pom").size(10L).artifactQuality(ArtifactQuality.DELETED).buildCategory(BuildCategory.SERVICE).build();
    Artifact builtArtifact4 = Artifact.Builder.newBuilder().identifier("demo:built-artifact22:jar:1.0").targetRepository(targetRepository2).filename("demo built artifact 21").md5("48312fb24c7b2a116c2139d5b39bad66").sha1("6ce2fd75c35e7eed2c45338b943be34d0b974f16").sha256("61c9ccd3ba0013311ddb89cb9a29389b6761061bdcdfb48f0096bf98c7279a21").deployPath("demo/built-artifact22/1.0/built-artifact22-1.0.jar").size(11L).artifactQuality(ArtifactQuality.NEW).buildCategory(BuildCategory.SERVICE).build();
    builtArtifact1 = artifactRepository.save(builtArtifact1);
    builtArtifact2 = artifactRepository.save(builtArtifact2);
    builtArtifact3 = artifactRepository.save(builtArtifact3);
    builtArtifact4 = artifactRepository.save(builtArtifact4);
    Artifact importedArtifact1 = Artifact.Builder.newBuilder().identifier("demo:imported-artifact1:jar:1.0").targetRepository(targetRepository).filename("demo imported artifact 1").originUrl("http://central/import1.jar").importDate(Date.from(Instant.now())).md5("md-fake-abcd1234").sha1("sha1-fake-abcd1234").sha256("sha256-fake-abcd1234").size(10L).artifactQuality(ArtifactQuality.NEW).buildCategory(BuildCategory.STANDARD).deployPath("/imported1").build();
    Artifact importedArtifact2 = Artifact.Builder.newBuilder().identifier("demo:imported-artifact2:jar:1.0").targetRepository(targetRepository).filename("demo imported artifact 2").originUrl("http://central/import2.jar").importDate(Date.from(Instant.now())).md5("md-fake-abcd1234").sha1("sha1-fake-abcd1234").sha256("sha256-fake-abcd1234").size(10L).artifactQuality(ArtifactQuality.NEW).buildCategory(BuildCategory.STANDARD).deployPath("/imported2").build();
    importedArtifact1 = artifactRepository.save(importedArtifact1);
    importedArtifact2 = artifactRepository.save(importedArtifact2);
    Set<BuildRecord> buildRecords = new HashSet<>();
    final int INITIAL_REVISION = 1;
    IdRev buildConfig1AuditIdRev = new IdRev(buildConfiguration1.getId(), INITIAL_REVISION);
    BuildConfigurationAudited buildConfigAudited1 = buildConfigurationAuditedRepository.queryById(buildConfig1AuditIdRev);
    if (buildConfigAudited1 != null) {
        String nextId = Sequence.nextBase32Id();
        log.info("####nextId: " + nextId);
        BuildRecord buildRecord1 = BuildRecord.Builder.newBuilder().id(nextId).buildConfigurationAudited(buildConfigAudited1).submitTime(Timestamp.from(Instant.now().minus(8, ChronoUnit.MINUTES))).startTime(Timestamp.from(Instant.now().minus(5, ChronoUnit.MINUTES))).endTime(Timestamp.from(Instant.now())).dependency(importedArtifact1).dependency(importedArtifact2).user(pncAdminUser).repourLog("This is a wannabe alignment log.").buildLog("Very short demo log: The quick brown fox jumps over the lazy dog.").status(BuildStatus.SUCCESS).productMilestone(demoProductMilestone1).sshCommand("ssh worker@localhost -P 9999").sshPassword("dontchangeme").buildEnvironment(buildConfigAudited1.getBuildEnvironment()).scmRepoURL(buildConfigAudited1.getRepositoryConfiguration().getInternalUrl()).scmRevision(buildConfigAudited1.getScmRevision()).executionRootName("org.jboss.pnc:parent").executionRootVersion("1.2.3").temporaryBuild(false).build();
        log.info("Saving buildRecord1: " + buildRecord1);
        BuildRecord savedBuildRecord1 = buildRecordRepository.save(buildRecord1);
        builtArtifact1.setBuildRecord(savedBuildRecord1);
        builtArtifact2.setBuildRecord(savedBuildRecord1);
        log.info("Saved buildRecord1: " + savedBuildRecord1 + "BuildConfigurationAuditedIdRev: " + savedBuildRecord1.getBuildConfigurationAuditedIdRev());
        buildRecords.add(buildRecord1);
        nextId = Sequence.nextBase32Id();
        log.info("####nextId: " + nextId);
        BuildRecord tempRecord1 = BuildRecord.Builder.newBuilder().id(nextId).buildConfigurationAudited(buildConfigAudited1).submitTime(Timestamp.from(Instant.now())).startTime(Timestamp.from(Instant.now())).endTime(Timestamp.from(Instant.now())).user(pncAdminUser).repourLog("This is a wannabe alignment log.").buildLog("Very short demo log: The quick brown fox jumps over the lazy dog.").status(BuildStatus.SUCCESS).buildEnvironment(buildConfigAudited1.getBuildEnvironment()).scmRepoURL(buildConfigAudited1.getRepositoryConfiguration().getInternalUrl()).scmRevision(buildConfigAudited1.getScmRevision()).executionRootName("org.jboss.pnc:parent").executionRootVersion("1.2.3").temporaryBuild(true).build();
        log.info("Saving tempRecord1: " + tempRecord1);
        BuildRecord savedTempRecord1 = buildRecordRepository.save(tempRecord1);
        builtArtifact3.setBuildRecord(savedTempRecord1);
        builtArtifact4.setBuildRecord(savedTempRecord1);
        log.info("Saved buildRecord1: " + savedTempRecord1 + "BuildConfigurationAuditedIdRev: " + savedTempRecord1.getBuildConfigurationAuditedIdRev());
        buildRecords.add(tempRecord1);
    }
    Artifact builtArtifact5 = Artifact.Builder.newBuilder().identifier("demo:built-artifact3:jar:1.0").targetRepository(targetRepository).filename("demo built artifact 3").md5("17353a18678c6c249e3052edec2e4c5c").sha1("61dad16e14438d2d8c8cbd18b267d62944f37898").sha256("1660168483cb8a05d1cc2e77c861682a42ed9517ba945159d5538950c5db00fa").size(10L).artifactQuality(ArtifactQuality.NEW).deployPath("/built3").build();
    Artifact builtArtifact6 = Artifact.Builder.newBuilder().identifier("demo:built-artifact4:jar:1.0").targetRepository(targetRepository).filename("demo built artifact 4").md5("md-fake-abcd1234").sha1("sha1-fake-abcd1234").sha256("sha256-fake-abcd1234").size(10L).artifactQuality(ArtifactQuality.NEW).deployPath("/built4").build();
    Artifact builtArtifact7 = Artifact.Builder.newBuilder().identifier("demo:built-artifact5:jar:1.0").targetRepository(targetRepository).filename("demo built artifact 7").md5("adsfs6df548w1327cx78he873217df98").sha1("a56asdf87a3cvx231b87987fasd6f5ads4f32sdf").sha256("sad5f64sf87b3cvx2b1v87tr89h7d3f5g432xcz1zv87fawrv23n8796534564er").size(10L).artifactQuality(ArtifactQuality.NEW).deployPath("/built5").build();
    Artifact builtArtifact8 = Artifact.Builder.newBuilder().identifier("demo:built-artifact6:jar:1.0").targetRepository(targetRepository).filename("demo built artifact 8").md5("md-fake-abcdefg1234").sha1("sha1-fake-abcdefg1234").sha256("sha256-fake-abcdefg1234").size(10L).artifactQuality(ArtifactQuality.NEW).deployPath("/built6").build();
    builtArtifact5 = artifactRepository.save(builtArtifact5);
    builtArtifact6 = artifactRepository.save(builtArtifact6);
    builtArtifact7 = artifactRepository.save(builtArtifact7);
    builtArtifact8 = artifactRepository.save(builtArtifact8);
    Artifact dependencyBuiltArtifact1 = artifactRepository.queryByPredicates(withIdentifierAndSha256(builtArtifact1.getIdentifier(), builtArtifact1.getSha256()));
    // For timestamp tests where concrete timestamp is needed
    Calendar calendar = Calendar.getInstance();
    calendar.set(2019, Calendar.JANUARY, 10);
    IdRev buildConfig2AuditIdRev = new IdRev(buildConfiguration2.getId(), INITIAL_REVISION);
    BuildConfigurationAudited buildConfigAudited2 = buildConfigurationAuditedRepository.queryById(buildConfig2AuditIdRev);
    if (buildConfigAudited2 != null) {
        String nextId = Sequence.nextBase32Id();
        log.info("####nextId: " + nextId);
        BuildRecord buildRecord2 = BuildRecord.Builder.newBuilder().id(nextId).buildConfigurationAudited(buildConfigAudited2).submitTime(Timestamp.from(Instant.now().minus(8, ChronoUnit.MINUTES))).startTime(Timestamp.from(Instant.now().minus(5, ChronoUnit.MINUTES))).endTime(Timestamp.from(Instant.now())).dependency(dependencyBuiltArtifact1).dependency(importedArtifact1).user(demoUser).buildLog("Very short demo log: The quick brown fox jumps over the lazy dog.").status(BuildStatus.SUCCESS).buildEnvironment(buildConfigAudited2.getBuildEnvironment()).executionRootName("org.jboss.pnc:parent").executionRootVersion("1.2.4").temporaryBuild(false).build();
        nextId = Sequence.nextBase32Id();
        log.info("####nextId: " + nextId);
        BuildRecord savedBuildRecord2 = buildRecordRepository.save(buildRecord2);
        builtArtifact5.setBuildRecord(savedBuildRecord2);
        builtArtifact6.setBuildRecord(savedBuildRecord2);
        buildRecords.add(buildRecord2);
        BuildRecord tempRecord1 = BuildRecord.Builder.newBuilder().id(nextId).buildConfigurationAudited(buildConfigAudited2).submitTime(Timestamp.from(calendar.toInstant().minus(8, ChronoUnit.HOURS))).startTime(Timestamp.from(calendar.toInstant().minus(5, ChronoUnit.HOURS))).endTime(Timestamp.from(calendar.toInstant())).user(demoUser).buildLog("Is it free?").status(BuildStatus.SUCCESS).buildEnvironment(buildConfigAudited2.getBuildEnvironment()).executionRootName("org.jboss.pnc:parent").executionRootVersion("1.2.4").temporaryBuild(true).build();
        BuildRecord savedTempRecord1 = buildRecordRepository.save(tempRecord1);
        builtArtifact7.setBuildRecord(savedTempRecord1);
        builtArtifact8.setBuildRecord(savedTempRecord1);
        buildRecords.add(tempRecord1);
    }
    BuildConfigSetRecord buildConfigSetRecord1 = BuildConfigSetRecord.Builder.newBuilder().buildConfigurationSet(buildConfigurationSet1).startTime(Timestamp.from(Instant.now())).endTime(Timestamp.from(Instant.now())).user(demoUser).status(BuildStatus.FAILED).temporaryBuild(false).build();
    buildConfigSetRecordRepository.save(buildConfigSetRecord1);
    BuildConfigSetRecord buildConfigSetRecord2 = BuildConfigSetRecord.Builder.newBuilder().buildConfigurationSet(buildConfigurationSet1).buildRecords(buildRecords).startTime(Timestamp.from(Instant.now())).endTime(Timestamp.from(Instant.now())).user(demoUser).status(BuildStatus.SUCCESS).temporaryBuild(false).build();
    buildConfigSetRecordRepository.save(buildConfigSetRecord2);
    BuildConfigSetRecord buildConfigSetRecord3 = BuildConfigSetRecord.Builder.newBuilder().buildConfigurationSet(buildConfigurationSet1).startTime(Timestamp.from(calendar.toInstant().minus(20, ChronoUnit.DAYS))).endTime(Timestamp.from(calendar.toInstant().minus(20, ChronoUnit.DAYS))).user(demoUser).status(BuildStatus.SUCCESS).temporaryBuild(true).build();
    buildConfigSetRecordRepository.save(buildConfigSetRecord3);
    demoProductMilestone1 = productMilestoneRepository.queryById(demoProductMilestone1.getId());
    demoProductMilestone1.addDeliveredArtifact(builtArtifact1);
    demoProductMilestone1.addDeliveredArtifact(builtArtifact5);
    demoProductMilestone1.addDeliveredArtifact(importedArtifact2);
    demoProductMilestone1 = productMilestoneRepository.save(demoProductMilestone1);
    Map<String, String> operationParameters = new HashMap<String, String>();
    operationParameters.put("url-0", "https://github.com/project-ncl/pnc/archive/refs/tags/2.1.1.tar.gz");
    DeliverableAnalyzerOperation operation1 = DeliverableAnalyzerOperation.Builder.newBuilder().id(new Base32LongID(1000001l)).progressStatus(ProgressStatus.NEW).submitTime(TODAY).user(demoUser).productMilestone(demoProductMilestone1).operationParameters(operationParameters).build();
    deliverableAnalyzerOperationRepository.save(operation1);
    DeliverableAnalyzerOperation operation2 = DeliverableAnalyzerOperation.Builder.newBuilder().id(new Base32LongID(1000002l)).progressStatus(ProgressStatus.IN_PROGRESS).submitTime(TODAY).user(demoUser).productMilestone(demoProductMilestone1).build();
    deliverableAnalyzerOperationRepository.save(operation2);
}
Also used : Base32LongID(org.jboss.pnc.model.Base32LongID) HashMap(java.util.HashMap) DeliverableAnalyzerOperation(org.jboss.pnc.model.DeliverableAnalyzerOperation) Calendar(java.util.Calendar) Artifact(org.jboss.pnc.model.Artifact) BuildRecord(org.jboss.pnc.model.BuildRecord) TargetRepository(org.jboss.pnc.model.TargetRepository) BuildConfigurationAudited(org.jboss.pnc.model.BuildConfigurationAudited) IdRev(org.jboss.pnc.model.IdRev) HashSet(java.util.HashSet) BuildConfigSetRecord(org.jboss.pnc.model.BuildConfigSetRecord) TransactionAttribute(javax.ejb.TransactionAttribute)

Example 23 with BuildConfigurationAudited

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

the class BuildRecordRepositoryTest method initBuildRecordBuilder.

private BuildRecord.Builder initBuildRecordBuilder(String id) {
    if (user == null) {
        List<User> users = userRepository.queryWithPredicates(UserPredicates.withUserName("demo-user"));
        if (users.size() > 0) {
            user = users.get(0);
        }
        if (user == null) {
            this.user = userRepository.save(User.Builder.newBuilder().username("demo-user").firstName("Demo First Name").lastName("Demo Last Name").email("demo-user@pnc.com").build());
        }
    }
    BuildConfiguration buildConfiguration = producers.createValidBuildConfiguration("buildRecordTest-" + id);
    BuildConfiguration saved = buildConfigurationRepository.save(buildConfiguration);
    BuildConfigurationAudited buildConfigurationAudited = buildConfigurationAuditedRepository.findAllByIdOrderByRevDesc(saved.getId()).get(0);
    return BuildRecord.Builder.newBuilder().id(id).buildConfigurationAudited(buildConfigurationAudited).submitTime(new Date()).user(user).status(BuildStatus.SUCCESS);
}
Also used : BuildConfiguration(org.jboss.pnc.model.BuildConfiguration) BuildConfigurationAudited(org.jboss.pnc.model.BuildConfigurationAudited) User(org.jboss.pnc.model.User) Date(java.util.Date)

Example 24 with BuildConfigurationAudited

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

the class BuildConfigProviderTest method testGetRevision.

@Test
public void testGetRevision() {
    // With
    final Integer revision = 1;
    BuildConfigurationAudited bca = BuildConfigurationAudited.fromBuildConfiguration(bc, revision);
    when(buildConfigurationAuditedRepository.queryById(new IdRev(bc.getId(), revision))).thenReturn(bca);
    // When
    BuildConfigurationRevision bcr = provider.getRevision(bc.getId().toString(), revision);
    // Then
    assertThat(bcr).isNotNull();
    assertThat(bcr.getId()).isEqualTo(bc.getId().toString());
    assertThat(bcr.getRev()).isEqualTo(revision);
    assertThat(bcr.getName()).isEqualTo(bc.getName());
    assertThat(bcr.getProject().getId()).isEqualTo(bc.getProject().getId().toString());
    assertThat(bcr.getCreationTime()).isEqualTo(bc.getCreationTime().toInstant());
    assertThat(bcr.getBuildType()).isEqualTo(bc.getBuildType());
}
Also used : BuildConfigurationAudited(org.jboss.pnc.model.BuildConfigurationAudited) BuildConfigurationRevision(org.jboss.pnc.dto.BuildConfigurationRevision) IdRev(org.jboss.pnc.model.IdRev) Test(org.junit.Test)

Example 25 with BuildConfigurationAudited

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

the class BuildProviderImplTest method mockBuildTask.

private BuildTask mockBuildTask(String buildConfigName) {
    BuildConfigurationAudited bca = mock(BuildConfigurationAudited.class);
    when(bca.getName()).thenReturn(buildConfigName);
    BuildTask bt = mock(BuildTask.class);
    when(bt.getId()).thenReturn(getNextId().getId());
    when(bt.getSubmitTime()).thenReturn(new Date());
    when(bt.getBuildConfigurationAudited()).thenReturn(bca);
    try {
        // make sure there are no two builds with the same start date
        Thread.sleep(1L);
    } catch (InterruptedException e) {
        logger.error("I can get no sleep.", e);
    }
    runningBuilds.add(bt);
    return bt;
}
Also used : BuildConfigurationAudited(org.jboss.pnc.model.BuildConfigurationAudited) BuildTask(org.jboss.pnc.spi.coordinator.BuildTask) Date(java.util.Date)

Aggregations

BuildConfigurationAudited (org.jboss.pnc.model.BuildConfigurationAudited)35 BuildConfiguration (org.jboss.pnc.model.BuildConfiguration)12 IdRev (org.jboss.pnc.model.IdRev)12 BuildSetTask (org.jboss.pnc.spi.coordinator.BuildSetTask)10 BuildTask (org.jboss.pnc.spi.coordinator.BuildTask)10 Test (org.junit.Test)8 HashSet (java.util.HashSet)7 BuildRecord (org.jboss.pnc.model.BuildRecord)6 Date (java.util.Date)5 Logger (org.slf4j.Logger)5 LoggerFactory (org.slf4j.LoggerFactory)5 Map (java.util.Map)4 Set (java.util.Set)4 Collectors (java.util.stream.Collectors)4 Inject (javax.inject.Inject)4 Base32LongID (org.jboss.pnc.model.Base32LongID)4 Collections (java.util.Collections)3 List (java.util.List)3 Optional (java.util.Optional)3 Stateless (javax.ejb.Stateless)3