Simple Node.js project to demonstrate CircleCI capabilities.
- Yarn and Node.js.
- Free Sumo Logic account w/ CircleCI dashboards & endpoints setup. See Sumo Logic Orb and Sumo Logic Setup Docs for details. You should create a few ENV variables at the project-level for this.
- DockerHub repository for an image.
- AWS Account, Access, and Secret Keys
- AWS ECR repository for an image.
- A context named
demo-prod
with the following ENV variables defined:
Variable Name | Description |
---|---|
AWS_ACCESS_KEY_ID | AWS Access Key ID |
AWS_SECRET_ACCESS_KEY | The AWS Secret Key generated with the Access Key ID |
AWS_S3_BUCKET_NAME | URI of bucket name in the form of "s3://bucket-name" |
AWS_DEFAULT_REGION | The default AWS region, set to us-east-1 or other |
AWS_REGION | Same value as AWS_DEFAULT_REGION |
AWS_ECR_ACCOUNT_URL | URL to the account's ECR, without the repo name (ends in ".com") |
AWS_ECR_REPO_NAME | Name of the repository (e.g "my-image-repo"). AWS_ECR_ACCOUNT_URL combines with AWS_ECR_REPO_NAME to form the full AWS ECR tag. |
DOCKER_LOGIN | Username for DockerHub login |
DOCKER_PWD | Password to the DockerHub login |
DOCKER_TAG | Full tag for the DockerHub repository (e.g. username/repo ) |
- Clone the repository and run
yarn
to install dependencies. - Run
yarn start
to start a simple web server serving the static assets.
The test uses TestCafe to run UI tests. It also assumes Chrome and Firefox browsers available on the system.
- Run
yarn test
to start tests.
CircleCI is used to automatically run the tests and, upon manual approval, build Docker images, push them to DockerHub & ECR, and then deploy the website files to S3.
You can visit those jobs by clicking on the status badge above or clicking here.