### `deploy-to-test`
#### Current candidate release process
```sequence
Note left of Pay CI: Candidate build tag created
Pay CI->GitHub: Fetch main branch release
GitHub-->Pay CI: Success
Pay CI->Pay CI: Build project (x86)
Pay CI->Pay CI: Build image (x86)
Pay CI->AWS: Push #build-candidate (x86) to ECR
AWS-->Pay CI: Success
Note left of Pay CI: Slack notification
Note left of Pay CI: Get candidate image
Pay CI->AWS: Trigger E2E CodeBuild (x86)
Note right of AWS: Tests passed
AWS-->Pay CI: Success
Pay CI->AWS: Push #build-release, latest to ECR
AWS-->Pay CI: Success
Pay CI->Dockerhub: Push latest-master to Dockerhub
Dockerhub-->Pay CI: Success
Note left of Pay CI: Slack notification
Note left of Pay CI: Deploy to test...
```
#### Interim candidate release process
```sequence
Note left of Pay CI: Candidate build tag created
Pay CI->GitHub: Fetch main branch release
GitHub-->Pay CI: Success
Pay CI->AWS: Copy repo to S3
Pay CI->AWS: Trigger CodeBuild (ARM)
Note right of AWS: Fetch source from S3
Note right of AWS: Push #build-candidate-arm to ECR
Pay CI->Pay CI: Build project (x86)
Pay CI->Pay CI: Build image (x86)
Pay CI->AWS: Push #build-candidate to ECR (x86)
Note left of Pay CI: Await CodeBuild result
AWS-->Pay CI: Success
Note left of Pay CI: Slack notification
Note left of Pay CI: Get candidate images (x86, ARM)
Pay CI->AWS: Trigger E2E CodeBuild (x86)
Note right of AWS: Tests passed
AWS-->Pay CI: Success
Pay CI->AWS: Push #build-release, #build-release-arm, latest to ECR
AWS-->Pay CI: Success
Pay CI->Dockerhub: Push latest-master, latest-arm to Dockerhub
Dockerhub-->Pay CI: Success
Note left of Pay CI: Slack notification
Note left of Pay CI: Deploy to test...
```
#### Final candidate release process
```sequence
Note left of Pay CI: Candidate build tag created
Pay CI->GitHub: Fetch main branch release
GitHub-->Pay CI: Success
Pay CI->AWS: Copy repo to S3
Pay CI->AWS: Trigger CodeBuild (ARM and x86)
Note right of AWS: Fetch source from S3
Note right of AWS: Push #build-candidates to ECR
Note left of Pay CI: Await CodeBuild result
AWS-->Pay CI: Success
Pay CI->AWS: Trigger manifest CodeBuild
Note right of AWS: Push #build-candidate index to ECR
Note left of Pay CI: Await CodeBuild result
AWS-->Pay CI: Success
Note left of Pay CI: Slack notification
Note left of Pay CI: Get candidate image
Pay CI->AWS: Trigger E2E CodeBuild (x86)
Note right of AWS: Tests passed
AWS-->Pay CI: Success
Pay CI->AWS: Push #build-release, latest to ECR
AWS-->Pay CI: Success
Pay CI->Dockerhub: Push latest-master to Dockerhub
Dockerhub-->Pay CI: Success
Note left of Pay CI: Slack notification
Note left of Pay CI: Deploy to test...
```