This project was built using React for application development, Redux for state management, Git for version control, CircleCI as a pipeline for CI/CD, AWS-s3 for storing our static application, AWS Cloudfront for content delivery, Slack for progress reporting on deployment,Sentry for monitoring and Terraform to provision resources.
- For Continuous Integration and Continuous Delivery using Github.
- Create Public and Private keys for the project.
- Paste the public key in the Project Repo ->
Settings
->add deploy key
. - Paste the Private key in the CircleCI settings for the project.
- Config different environmental variables for AWS s3 and CloudFront.
- Create an IAM user then add permissions using environmental variables on CircleCI.
- Environmental variables ->
Access key + Secret access key
. - Create buckets for development, staging and production, add bucket policy and static hosting.
- Add all the environmental variables to CircleCI.
- Create distributions for all stages for the edge locations ->
AWS
. - Create environmental variables for development, staging and production ->
CircleCI
. - Invalidations can be added using code.
- Create a new workspace on Slack for the project and add a channel.
- Navigate to settings of the
workspace
->setting & administration
->manage app
. - Search from the
app directory
circleci and add it ->add channel
->then copy the hook URL
. - Navigate to circleci ->
project's settings
->webhooks
andadd a webhook URL from slack
. - Add a
secret key
->select job completed
andthen test with a ping
.
- Navigate to the
project settings
->Slack integration
andcreate a slack application
. - Go to permissions ->
scope
and addchat:write | files:write
and then install to workspace underOAuth token section
. - Add the token to circleci's environment variables ->
SLACK_ACCESS_TOKEN
.
- Update your aws credentials: new IAM user for terraform to connect to AWS.
- Add the created user's credentials to your local system's terminal ->
export AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
.