Enterprise Application Pipeline
Requirements
- The pipeline needs to trigger when there is a push to either the frontend or backend Git Hub.
- The pipeline should test the application with unit and staging tests.
- The pipeline needs to be able to delete all cloud resources at the end to minimize the cost
- The pipeline should be able to create all of the resources from scratch because they are deleted every iteration.
- The output of the continuous integration part of the pipeline should be a docker image of the updated application.
- The output of the continuous deployment part of the pipeline should be a fully working application hosted on AWS.
Workflow For Pipeline
workflows:
build-and-test:
jobs:
- test-python
- build_docker_image:
requires:
- test-python
- create_kubernetes_cluster:
requires:
- build_docker_image
- setup_dns_and_deploy:
requires:
- create_kubernetes_cluster
- puppeteer_testing :
requires:
- setup_dns_and_deploy
- hold_notification:
requires:
- puppeteer_testing
- hold_puppeteer:
type: approval
requires:
- puppeteer_testing
- Create_and_deploy_prod:
requires:
- hold_puppeteer
- puppeteer_testing2:
requires:
- Create_and_deploy_prod
- Azure_Cleanup:
requires:
- puppeteer_testing2
- hold_cleanup:
type: approval
requires:
- puppeteer_testing2
- hold_notification:
requires:
- puppeteer_testing2
- AWS_Cleanup:
requires:
- hold_cleanup