Pipeline is triggered on merge of a pull request or commit of code to the main code branch of the Data Platform repository
Terraform and python scripts are then tested in parallel. For Python the unit tests are executed and for Terraform the source code is linted and then validated using tf lint and terraform validate commands
If the previous steps are successful then a terraform plan followed by Terraform compliance checks and then finally a terraform apply is executed against the Staging environment
The pipeline then pauses for a manual approval.
If the manual approval step is approved then a terraform plan followed by Terraform compliance checks and then finally a terraform apply is executed against the Production environment