This repository is a sample source application used to demonstrate LocalStack's AWS CodePipeline emulation. It showcases a full CI/CD workflow with CodeBuild (Maven build + JUnit tests), CodeDeploy (ECS blue/green deployment), and CloudFormation stack provisioning.
The application is a simple Java utility (MessageUtil) built with Maven and packaged as a JAR. The pipeline:
- Source — pulls this repository as the pipeline source.
- Build — uses CodeBuild with Amazon Corretto 11 to compile the Maven project and run JUnit tests, producing
target/messageUtil-1.0.jar. - Deploy — deploys an nginx-based Docker image (serving
index.html) to an ECS service via CodeDeploy blue/green deployment. - Provision — optionally creates an SQS queue via the included CloudFormation template.
.
├── Dockerfile # nginx image serving index.html
├── appspec.yml # CodeDeploy AppSpec for ECS blue/green deployment
├── buildspec.yml # CodeBuild build specification (Java/Maven)
├── cfn_stack.yaml # CloudFormation template — creates an SQS queue
├── index.html # Static HTML page served by nginx
├── pom.xml # Maven project descriptor for Message Utility
└── src/
├── main/java/MessageUtil.java # Java utility class
└── test/java/TestMessageUtil.java # JUnit tests- A valid LocalStack for AWS license, which provides a
LOCALSTACK_AUTH_TOKENrequired to run these samples. - Docker with access to the Docker socket.
-
- AWS CLI and
awslocal
- AWS CLI and
export LOCALSTACK_AUTH_TOKEN=<your-auth-token>This repository is intended to be used as the source stage of a LocalStack CodePipeline sample. Refer to the parent pipeline repository for end-to-end setup instructions.
When used standalone, you can build the Maven project locally:
mvn installThis compiles MessageUtil.java, runs the JUnit tests, and produces target/messageUtil-1.0.jar.
Licensed under the Apache License 2.0. See LICENSE.