# Why do we need systematic and automated CICD flow
**To reduce human mistakes in the CD process. (And make our lives easier)**
Humans do make mistakes, machines don't
E.g. Humans may update the wrong version or forgot to update some regions.
With a systematic and automated CICD flow , those things will never happen.
## What CICD tools will we use
Release branch Pattern
How to use our CICD template
Release branch format: {Enviroment}/{Control panel}/{Swimlane}@{Cluster}
@{Cluster} is optional. If not specific, will deploy to all clusters(exclude oth)
e.g,
- Deploy to us git push origin feat-your_feature:prod/us/prod
- Deploy to maliva sandbox cluster git push origin feat-your_feature:prod/us/prod@sendbox
- Deploy to testAsia git push origin {YourBranch}:test/testAsia/prod
Argument
- {Enviroment}: test/prod
- {region}: asia/europe/us/ALL
- {Swimlane}: prod/ others....
- {Cluster}: default/ others....
Notification
- Join this group to receive the notification about deploy status
## I want a shorter command !
Add this alias to boost the process
`vi ~/.gitconfig`
```
[alias]
cibr = "!export BR=`git rev-parse --abbrev-ref HEAD` && git push -f origin ${BR}:$1 && :"
```
After switching to the branch you want to update to, enter:
git cibr test/testAsia/prod
It will push your current branch to the given branch.
cibr = CI BRanch