# 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