in code/java/pipelines-workshop/src/main/java/com/myorg/WorkshopPipelineStack.java [20:64]
public WorkshopPipelineStack(final Construct parent, final String id, final StackProps props) {
super(parent, id, props);
// This creates a new CodeCommit repository called 'WorkshopRepo'
final Repository repo = Repository.Builder.create(this, "WorkshopRepo")
.repositoryName("WorkshopRepo")
.build();
// The basic pipeline declaration. This sets the initial structure
// of our pipeline
final CodePipeline pipeline = CodePipeline.Builder.create(this, "Pipeline")
.pipelineName("WorkshopPipeline")
.synth(CodeBuildStep.Builder.create("SynthStep")
.input(CodePipelineSource.codeCommit(repo, "master"))
.installCommands(List.of(
"npm install -g aws-cdk" // Commands to run before build
))
.commands(List.of(
"mvn package", // Language-specific build commands
"npx cdk synth" // Synth command (always same)
)).build())
.build();
final WorkshopPipelineStage deploy = new WorkshopPipelineStage(this, "Deploy");
StageDeployment stageDeployment = pipeline.addStage(deploy);
stageDeployment.addPost(
CodeBuildStep.Builder.create("TestViewerEndpoint")
.projectName("TestViewerEndpoint")
.commands(List.of("curl -Ssf $ENDPOINT_URL"))
.envFromCfnOutputs(Map.of("ENDPOINT_URL", deploy.hcViewerUrl))
.build(),
CodeBuildStep.Builder.create("TestAPIGatewayEndpoint")
.projectName("TestAPIGatewayEndpoint")
.envFromCfnOutputs(Map.of("ENDPOINT_URL", deploy.hcEndpoint))
.commands(List.of(
"curl -Ssf $ENDPOINT_URL",
"curl -Ssf $ENDPOINT_URL/hello",
"curl -Ssf $ENDPOINT_URL/test"
))
.build()
);
}