Search in sources :

Example 16 with BuildConfigSetRecord

use of org.jboss.pnc.model.BuildConfigSetRecord 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 17 with BuildConfigSetRecord

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

the class TemporaryBuildsCleanerTest method shouldDeleteSingleTemporaryBuildSetTestWithOneBr.

@Test
public void shouldDeleteSingleTemporaryBuildSetTestWithOneBr() throws Exception {
    // given
    BuildConfigSetRecord buildConfigSetRecord = initBuildConfigSetRecordBuilder().temporaryBuild(true).build();
    buildConfigSetRecordRepository.save(buildConfigSetRecord);
    BuildRecord tempBr = initBuildRecordBuilder().temporaryBuild(true).buildConfigSetRecord(buildConfigSetRecord).build();
    buildRecordRepository.save(tempBr);
    // when
    temporaryBuildsCleaner.deleteTemporaryBuildConfigSetRecord(buildConfigSetRecord.getId(), "");
    // then
    assertNull(buildConfigSetRecordRepository.queryById(buildConfigSetRecord.getId()));
    assertNull(buildRecordRepository.queryById(tempBr.getId()).getBuildConfigSetRecord());
}
Also used : BuildRecord(org.jboss.pnc.model.BuildRecord) BuildConfigSetRecord(org.jboss.pnc.model.BuildConfigSetRecord) ContainerTest(org.jboss.pnc.test.category.ContainerTest) Test(org.junit.Test)

Example 18 with BuildConfigSetRecord

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

the class TemporaryBuildsCleanerTest method shouldNotDeleteNonTemporaryBuildSetTest.

@Test(expected = ValidationException.class)
public void shouldNotDeleteNonTemporaryBuildSetTest() throws ValidationException {
    // given
    BuildRecord tempBr = initBuildRecordBuilder().temporaryBuild(true).build();
    buildRecordRepository.save(tempBr);
    Set<BuildRecord> buildRecords = new HashSet<>();
    buildRecords.add(tempBr);
    BuildConfigSetRecord buildConfigSetRecord = initBuildConfigSetRecordBuilder().temporaryBuild(false).build();
    buildConfigSetRecord.setBuildRecords(buildRecords);
    buildConfigSetRecordRepository.save(buildConfigSetRecord);
    // when - then
    temporaryBuildsCleaner.deleteTemporaryBuildConfigSetRecord(buildConfigSetRecord.getId(), "");
    fail("Deletion of non-temporary build should be prohibited");
}
Also used : BuildRecord(org.jboss.pnc.model.BuildRecord) HashSet(java.util.HashSet) BuildConfigSetRecord(org.jboss.pnc.model.BuildConfigSetRecord) ContainerTest(org.jboss.pnc.test.category.ContainerTest) Test(org.junit.Test)

Example 19 with BuildConfigSetRecord

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

the class BuildProviderImplTest method prepareMock.

@Before
public void prepareMock() throws ReflectiveOperationException, IllegalArgumentException {
    when(repository.queryWithPredicatesUsingCursor(any(PageInfo.class), any(SortInfo.class), any())).thenAnswer(new ListAnswer(repositoryList));
    when(repository.findByIdFetchProperties(any())).thenAnswer(inv -> {
        Base32LongID id = inv.getArgument(0);
        return repositoryList.stream().filter(a -> id.equals(a.getId())).findFirst().orElse(null);
    });
    when(buildCoordinator.getSubmittedBuildTasks()).thenReturn(runningBuilds);
    when(sortInfoProducer.getSortInfo(any(), any())).thenAnswer(i -> mock(SortInfo.class));
    when(rsqlPredicateProducer.getSortInfo(any(), any())).thenAnswer(i -> mock(SortInfo.class));
    user = mock(User.class);
    when(user.getLoginToken()).thenReturn(USER_TOKEN);
    when(userService.currentUser()).thenReturn(user);
    BuildConfigSetRecord buildConfigSetRecord = BuildConfigSetRecord.Builder.newBuilder().id(1).temporaryBuild(false).build();
    when(buildConfigSetRecordRepository.queryById(any())).thenReturn(buildConfigSetRecord);
}
Also used : PageInfo(org.jboss.pnc.spi.datastore.repositories.api.PageInfo) BuildPageInfo(org.jboss.pnc.facade.providers.api.BuildPageInfo) Base32LongID(org.jboss.pnc.model.Base32LongID) User(org.jboss.pnc.model.User) SortInfo(org.jboss.pnc.spi.datastore.repositories.api.SortInfo) BuildConfigSetRecord(org.jboss.pnc.model.BuildConfigSetRecord) Before(org.junit.Before)

Example 20 with BuildConfigSetRecord

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

the class GroupBuildProviderTest method fill.

@Before
public void fill() {
    final BuildConfigSetRecord a = prepareBCSetRecord(mockBuildConfigSet(2, "10% luck"));
    final BuildConfigSetRecord b = prepareBCSetRecord(mockBuildConfigSet(3, "20% skill"));
    final BuildConfigSetRecord c = prepareBCSetRecord(mockBuildConfigSet(4, "15% concentrated power of will"));
    final BuildConfigSetRecord d = prepareBCSetRecord(mockBuildConfigSet(5, "5% pleasure"));
    final BuildConfigSetRecord e = prepareBCSetRecord(mockBuildConfigSet(6, "50% pain"));
    List<BuildConfigSetRecord> records = new ArrayList<>(Arrays.asList(new BuildConfigSetRecord[] { a, b, c, d, e, bcsr }));
    fillRepository(records);
    user = mock(User.class);
    when(user.getId()).thenReturn(CURRENT_USER);
    when(user.getLoginToken()).thenReturn(USER_TOKEN);
    when(userService.currentUser()).thenReturn(user);
}
Also used : User(org.jboss.pnc.model.User) ArrayList(java.util.ArrayList) BuildConfigSetRecord(org.jboss.pnc.model.BuildConfigSetRecord) Before(org.junit.Before)

Aggregations

BuildConfigSetRecord (org.jboss.pnc.model.BuildConfigSetRecord)23 Test (org.junit.Test)10 BuildRecord (org.jboss.pnc.model.BuildRecord)9 BuildOptions (org.jboss.pnc.spi.BuildOptions)8 BuildConfigurationSet (org.jboss.pnc.model.BuildConfigurationSet)7 BuildSetStatus (org.jboss.pnc.spi.BuildSetStatus)7 BuildSetTask (org.jboss.pnc.spi.coordinator.BuildSetTask)7 HashSet (java.util.HashSet)6 User (org.jboss.pnc.model.User)6 DatastoreException (org.jboss.pnc.spi.datastore.DatastoreException)6 BuildTask (org.jboss.pnc.spi.coordinator.BuildTask)5 CoreException (org.jboss.pnc.spi.exception.CoreException)5 Optional (java.util.Optional)4 Set (java.util.Set)4 DatastoreAdapter (org.jboss.pnc.coordinator.builder.datastore.DatastoreAdapter)4 Logger (org.slf4j.Logger)4 LoggerFactory (org.slf4j.LoggerFactory)4 Collections (java.util.Collections)3 Date (java.util.Date)3 Event (javax.enterprise.event.Event)3