use of org.jboss.pnc.indyrepositorymanager.fixture.TestBuildExecution in project pnc by project-ncl.
the class VerifyBuildGroupRemovedAfterArtifactExtractionTest method extractBuildArtifactsTriggersBuildRepoPromotionToChainGroup.
@Test
public void extractBuildArtifactsTriggersBuildRepoPromotionToChainGroup() throws Exception {
String path = "/org/myproj/myproj/1.0/myproj-1.0.pom";
String content = "This is a test " + System.currentTimeMillis();
String buildId = "build";
// create a dummy composed (chained) build execution, and a repo session based on it
BuildExecution execution = new TestBuildExecution(buildId);
RepositorySession session = driver.createBuildRepository(execution, accessToken, accessToken, RepositoryType.MAVEN, Collections.emptyMap(), false);
// simulate a build deploying a file.
indy.module(IndyFoloContentClientModule.class).store(buildId, new StoreKey(MAVEN_PKG_KEY, StoreType.hosted, buildId), path, new ByteArrayInputStream(content.getBytes()));
// now, extract the build artifacts. This will trigger promotion of the build hosted repo to the chain group.
RepositoryManagerResult result = session.extractBuildArtifacts(true);
// do some sanity checks while we're here
List<Artifact> deps = result.getBuiltArtifacts();
assertThat(deps.size(), equalTo(1));
Artifact a = deps.get(0);
assertThat(a.getFilename(), equalTo(new File(path).getName()));
// end result: the build aggregation group should have been garbage collected
StoreKey groupKey = new StoreKey(MAVEN_PKG_KEY, StoreType.group, buildId);
boolean buildGroupExists = indy.stores().exists(groupKey);
assertThat(buildGroupExists, equalTo(false));
}
use of org.jboss.pnc.indyrepositorymanager.fixture.TestBuildExecution in project pnc by project-ncl.
the class VerifyBuildRepoPromotionToUntestedBuildsGroupTest method extractBuildArtifactsTriggersBuildRepoPromotionToChainGroup.
@Test
public void extractBuildArtifactsTriggersBuildRepoPromotionToChainGroup() throws Exception {
String path = "/org/myproj/myproj/1.0/myproj-1.0.pom";
String content = "This is a test " + System.currentTimeMillis();
String buildId = "build";
// create a dummy build execution, and a repo session based on it
BuildExecution execution = new TestBuildExecution(buildId);
RepositorySession session = driver.createBuildRepository(execution, accessToken, accessToken, RepositoryType.MAVEN, Collections.emptyMap(), false);
StoreKey hostedKey = new StoreKey(MAVEN_PKG_KEY, StoreType.hosted, buildId);
// simulate a build deploying a file.
indy.module(IndyFoloContentClientModule.class).store(buildId, hostedKey, path, new ByteArrayInputStream(content.getBytes()));
// now, extract the build artifacts. This will trigger promotion of the build hosted repo to the pnc-builds
// group.
RepositoryManagerResult result = session.extractBuildArtifacts(true);
assertThat(result.getCompletionStatus(), equalTo(CompletionStatus.SUCCESS));
// do some sanity checks while we're here
List<Artifact> deps = result.getBuiltArtifacts();
assertThat(deps.size(), equalTo(1));
Artifact a = deps.get(0);
assertThat(a.getFilename(), equalTo(new File(path).getName()));
// end result: the pnc-builds group should contain the build hosted repo.
StoreKey pncBuildsKey = new StoreKey(MAVEN_PKG_KEY, StoreType.hosted, PNC_BUILDS);
assertThat(indy.content().exists(pncBuildsKey, path), equalTo(true));
}
use of org.jboss.pnc.indyrepositorymanager.fixture.TestBuildExecution in project pnc by project-ncl.
the class VerifyManualDeletionOfBuildRepoTest method manuallyPromoteBuildRepoToChainGroup.
@Test
public void manuallyPromoteBuildRepoToChainGroup() throws Exception {
String path = "/org/myproj/myproj/1.0/myproj-1.0.pom";
String content = "This is a test " + System.currentTimeMillis();
String buildId = "build";
// create a dummy non-chained build execution and a repo session based on it
BuildExecution execution = new TestBuildExecution(buildId);
RepositorySession session = driver.createBuildRepository(execution, accessToken, accessToken, RepositoryType.MAVEN, Collections.emptyMap(), false);
String pkgType = MAVEN_PKG_KEY;
// simulate a build deploying a file.
StoreKey hostedKey = new StoreKey(pkgType, StoreType.hosted, buildId);
indy.module(IndyFoloContentClientModule.class).store(buildId, hostedKey, path, new ByteArrayInputStream(content.getBytes()));
// now, extract the build artifacts. This will trigger promotion of the build hosted repo to the chain group.
RepositoryManagerResult result = session.extractBuildArtifacts(true);
// do some sanity checks while we're here
List<Artifact> deps = result.getBuiltArtifacts();
assertThat(deps.size(), equalTo(1));
Artifact a = deps.get(0);
assertThat(a.getFilename(), equalTo(new File(path).getName()));
// construct a dummy BuildRecord for use below
BuildRecord record = new BuildRecord();
record.setBuildContentId(buildId);
// unset the readonly flag on the hosted repo to allow its deletion
IndyStoresClientModule indyStoreAdmin = indy.stores();
StoreKey key = new StoreKey(MAVEN_PKG_KEY, StoreType.hosted, record.getBuildContentId());
HostedRepository store = indyStoreAdmin.load(key, HostedRepository.class);
store.setReadonly(false);
indyStoreAdmin.update(store, "Unsetting readonly-flag to allow deletion");
// manually delete the build to the public group (since it's convenient)
RunningRepositoryDeletion deletion = driver.deleteBuild(record, pkgType, accessToken);
deletion.monitor(completed -> assertThat("Manual deletion failed.", completed.isSuccessful(), equalTo(true)), error -> {
error.printStackTrace();
fail("Failed to manually delete: " + error.getMessage());
});
// end result: the build hosted repo should no longer exist.
assertThat(indyStoreAdmin.exists(hostedKey), equalTo(false));
}
use of org.jboss.pnc.indyrepositorymanager.fixture.TestBuildExecution in project pnc by project-ncl.
the class VerifyManualPromotionOfBuildRepoTest method manuallyPromoteBuildRepoToChainGroup.
@Test
public void manuallyPromoteBuildRepoToChainGroup() throws Exception {
String path = "/org/myproj/myproj/1.0/myproj-1.0.pom";
String content = "This is a test " + System.currentTimeMillis();
// String chainId = "chain";
String buildId = "build";
// create a dummy non-chained build execution and a repo session based on it
BuildExecution execution = new TestBuildExecution(buildId);
RepositorySession session = driver.createBuildRepository(execution, accessToken, accessToken, RepositoryType.MAVEN, Collections.emptyMap(), false);
String pkgType = MAVEN_PKG_KEY;
// simulate a build deploying a file.
StoreKey hostedKey = new StoreKey(pkgType, StoreType.hosted, buildId);
indy.module(IndyFoloContentClientModule.class).store(buildId, hostedKey, path, new ByteArrayInputStream(content.getBytes()));
// now, extract the build artifacts. This will trigger promotion of the build hosted repo to the chain group.
RepositoryManagerResult result = session.extractBuildArtifacts(true);
// do some sanity checks while we're here
List<Artifact> deps = result.getBuiltArtifacts();
assertThat(deps.size(), equalTo(1));
Artifact a = deps.get(0);
assertThat(a.getFilename(), equalTo(new File(path).getName()));
// construct a dummy BuildRecord for use below
BuildRecord record = new BuildRecord();
record.setBuildContentId(buildId);
// manually promote the build to the public group (since it's convenient)
RunningRepositoryPromotion promotion = driver.promoteBuild(record, pkgType, PUBLIC, accessToken);
promotion.monitor(completed -> assertThat("Manual promotion failed.", completed.isSuccessful(), equalTo(true)), error -> {
error.printStackTrace();
fail("Failed to manually promote: " + error.getMessage());
});
// end result: the chain group should contain the build hosted repo.
StoreKey publicKey = new StoreKey(pkgType, StoreType.group, PUBLIC);
Group publicGroup = indy.stores().load(publicKey, Group.class);
System.out.println("public group constituents: " + publicGroup.getConstituents());
assertThat(publicGroup.getConstituents().contains(hostedKey), equalTo(true));
}
use of org.jboss.pnc.indyrepositorymanager.fixture.TestBuildExecution in project pnc by project-ncl.
the class BuildGroupSetBrewPullActiveMetadataTest method verifyBrewPullActiveMetadataSetProperly.
private void verifyBrewPullActiveMetadataSetProperly(boolean brewPullActive, String buildId) throws RepositoryManagerException, org.commonjava.indy.client.core.IndyClientException {
// create a dummy composed (chained) build execution and a repo session based on it
BuildExecution execution = new TestBuildExecution(buildId);
Indy indy = driver.getIndy(accessToken);
RepositorySession repositoryConfiguration = driver.createBuildRepository(execution, accessToken, accessToken, RepositoryType.MAVEN, Collections.emptyMap(), brewPullActive);
String repoId = repositoryConfiguration.getBuildRepositoryId();
Group buildGroup = indy.stores().load(new StoreKey(MAVEN_PKG_KEY, StoreType.group, repoId), Group.class);
Map<String, String> metadata = buildGroup.getMetadata();
assertThat(metadata).containsEntry(AbstractRepositoryManagerDriverTest.BREW_PULL_ACTIVE_METADATA_KEY, Boolean.toString(brewPullActive));
}
Aggregations