-
Notifications
You must be signed in to change notification settings - Fork 4
8. Automation
mono repo에 husky를 적용했습니다.
-
git commit
시 pre-commit git hook script가 자동으로 실행됩니다. -
Branch naming convention에 따라 branch 이름 유효성을 검사해서 유효한 branch에서만 commit이 가능하도록 강제합니다.
-
commit message 작성 전에 lint-staged로 staged된 파일들에 eslint와 prettier를 적용합니다.
-
eslint와 prettier의 경우 frontend와 backend의 세부 설정이 다르기 때문에 git hook script가 실행된 환경(frontend/backend)과 branch 이름의 prefix가 다르면 경고 메시지를 출력합니다.
-
git push
시 pre-push git hook script가 자동으로 실행됩니다. -
Test를 위한 mysql docker container를 띄우고 unit test와 e2e test를 실행합니다.
-
이를 위해 docker가 실행되고 있어야 하며 실행되고 있지 않은 경우 오류 메시지를 출력합니다.
-
통과하지 못한 test case가 있는 경우 push를 중단하고, test를 모두 통과해야만 push를 진행합니다.
-
Branch 이름의 prefix(
frontend
/backend
/infra
)를 기반으로 label을 추가합니다. -
Branch naming convention을 따르는지 검사합니다.
-
PR title convention을 따르는지 검사합니다.
-
Branch naming convention을 따르지 않을 경우 convention을 따르도록 수정해달라는 comment를 PR에 생성합니다.
-
PR title convention을 따르지 않을 경우 convention을 따르도록 수정해달라는 comment를 PR에 생성합니다.
- PR이 생성되면 branch 명에 포함된 ticket 번호로 해당하는 notion ticket을 찾아 PR link를 추가하고 상태를
Reviewing
으로 변경합니다. - PR이 병합되면 상태를
Done
으로 변경합니다.
Git → GitHub Actions → AWS ECR → AWS EC2, AWS RDS, Docker
- 작업한 내용을 Github에 Push 합니다.
- GitHub Actions에서 작업한 내용을 자동화로 검증합니다. 이때 검증한 내용은 Test, Build가 실행됩니다.
- GitHub Actions CI 과정이 완료가 되면 ECR Build 작업을 실행합니다.
- DockerFile에 작성된 내용을 Docker Image로 Build 한 후 ECR Repository에 Docker Image를 Push합니다.
- AWS ECR Image Push가 완료 되면 Amazon EC2에 Deploy 작업을 실행합니다.
- AWS EC2 Deploy 시 기존에 실행하고 있는 Docker를 지운 후 새로운 이미지를 실행합니다.
Blue/Green 배포란? 블루를 구버전, 그린을 신버전으로 지칭하여 운영 환경에서 구버전과 동일한 조건으로 로드밸런서를 통해 모든 트래픽을 전환하는 배포 방식입니다.
- AWS EC2 자원 한정으로 오토스케일링(
Autoscaling
)이 불가능 합니다. - 구버전과 신버전을 동시에 한 서버에서 관리를 할 수 있습니다.
- 버그 발생 시 빠른 롤백이 가능합니다.