use of org.janusgraph.codepipelines.model.PipelineDefinitions in project janusgraph by JanusGraph.
the class AwsCodePipelinesCi method run.
private void run() throws IOException {
final File file = new File(getOptionValue(PIPELINES_JSON_OPTION));
final Region region = Region.of(getOptionValue(REGION_OPTION));
final AwsCredentialsProvider provider = ProfileCredentialsProvider.builder().profileName(getOptionValue(PROFILE_OPTION)).build();
final ClientHttpConfiguration http = ClientHttpConfiguration.builder().httpClient(// consider netty some other time
ApacheSdkHttpClientFactory.builder().socketTimeout(Duration.ofSeconds(10)).connectionTimeout(Duration.ofMillis(750)).build().createHttpClient()).build();
final AwsCodePipelinesLogic.AwsCodePipelinesLogicBuilder builder = AwsCodePipelinesLogic.builder().githubToken(getOptionValue(GITHUB_TOKEN_OPTION)).githubOwner(getOptionValue(GITHUB_OWNER_OPTION)).githubRepo(getOptionValue(GITHUB_REPO_OPTION)).githubBranch(getOptionValue(GITHUB_BRANCH_OPTION)).codeBuildServiceRoleArn(getOptionValue(CODE_BUILD_SERVICE_ROLE_ARN_OPTION)).codePipelineRoleArn(getOptionValue(CODEPIPELINE_ROLE_ARN_OPTION)).s3Bucket(getOptionValue(BUCKET_OPTION)).s3BucketLocationConstraint(BucketLocationConstraint.fromValue(region.value())).s3(S3Client.builder().httpConfiguration(http).region(region).credentialsProvider(provider).build()).codeBuild(CodeBuildClient.builder().httpConfiguration(http).region(region).credentialsProvider(provider).build()).codePipeline(CodePipelineClient.builder().httpConfiguration(http).region(region).credentialsProvider(provider).build());
final Tag timeTag = Tag.builder().key("date").value(Long.toString(System.currentTimeMillis())).build();
final PipelineDefinitions definitions = new ObjectMapper(new YAMLFactory()).readValue(file, PipelineDefinitions.class);
definitions.getPipelines().stream().map(def -> builder.pipelineName(def.getName()).sourceOutputArtifactName(def.getName() + "Source").parallelBuildActions(def.getParallelBuildActions()).defaultComputeImage(definitions.getDefaultComputeImage()).defaultComputeType(definitions.getDefaultComputeType()).defaultPrivilegedMode(definitions.isDefaultPrivilegedMode()).tags(ImmutableList.of(Tag.builder().key("project").value(def.getName()).build(), timeTag)).build()).forEach(AwsCodePipelinesLogic::run);
}
Aggregations