-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BE] 백엔드 CD 자동화 환경 구축 #67
Conversation
Test Results28 tests 28 ✅ 3s ⏱️ Results for commit e4a3241. ♻️ This comment has been updated with latest results. |
e8134f5
to
578d3a6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
컨텍스트 다 이해했습니다!
마크랑 페드로 모두 고생 많았어요🫡
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
와우 ㅋㅋ 페드로, 마크 고생하셨습니다 🎉🎉
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고하셨습니다!👍
- woowacourse-teams/2024-momo-config - src/main/resources/security
Co-authored-by: seunghye218 <[email protected]>
Co-authored-by: seunghye218 <[email protected]>
Co-authored-by: seunghye218 <[email protected]>
관련 이슈
작업 내용
백엔드 기능 구현 후
develop
브랜치에 머지되었을 때 배포 자동화 환경을 구축했습니다.#59 에서 언급했던 것 처럼 현재는 개발서버에 대한 CD에 가까운데요, 이후 릴리즈 브랜치가 생기면 프로덕션 배포 자동화도 별개로 추가해야 할 듯 합니다!
develop
브랜치의/backend
경로 하위에 변경사항이 발생할 경우 다음과 같은 순서로 배포를 진행합니다.bootJar
빌드jar
을 포함한 Docker 이미지 빌드 후 Docker Hub 업로드특이 사항
application.yml
과 같은 중요 프로퍼티를 외부에 공개하지 않기 위해git submodule
을 사용합니다.비공개 레포지토리는
/2024-momo-config
이며, 변경사항 발생 시pull
해야 하므로 프론트 크루분들도 함께 콜라보레이터로 초대해 두었습니다.레포지토리 내 서브모듈의 경로는 다음과 같습니다.
본 PR 병합 이후
develop
에서 분기하는 브랜치의application.yml
은 서브모듈 내의yml
파일로 관리해야 합니다.서브모듈 내의 프로퍼티들을
classpath
로 복사하기 위해 다음과 같은Gradle task
를 활용합니다.해당 테스크는
.../resources/
경로 내의 동일한 파일명을 가진*.yml
을 덮어 씀에 유의하세요.로컬 레포지토리에 서브모듈 설정이 되어 있지 않다면 서브모듈을 직접 추가해야 합니다.
서브모듈은 원본 레포지토리와 독립된 하나의 레포지토리입니다.
원본 레포지토리는 서브모듈의 참조 해시 정보만을 가지고 있으므로, 서브모듈에 변경사항이 생긴 경우 항상 서브모듈부터 커밋 & 푸시 후 원본 레포지토리에 푸시해야 합니다.
(순서가 어긋날 경우
git diff
체크에서 서브모듈의 파일이 변경사항으로 감지되어 레포지토리가 꼬일 수 있어요🥲)submodule 레퍼런스
리뷰 요구사항 (선택)
Github Action 의
on: push
트리거 특성 상, 레포지토리의 기본 브랜치(현재는develop
)에 워크플로우 파일이 머지되어야 Actions 탭에서 활성화됩니다.PR 작성 시점에는 워크플로우를 직접 실행할 수 없어 테스트를 위해 부득이하게 트리거를 임시로 변경(5dbc9df) 한 후, 다시 복구 (4db6361) 해 뒀어요.
테스트 할 수 있는 만큼은 최대한 테스트 후 리뷰 요청 드리지만, 실제 문제가 없는지는 PR 머지 이후에 확인할 수 있을 것 같습니다😅
현재는 간단히
application.yml
하나로 설정을 관리하고 있지만, 이후 프로필이 다양해지거나 설정할 것들이 많아지면application.yml
을.gitignore
에서 해제하고, 중요 비밀들은security 서브모듈
내의 yml 파일을 임포트하여 사용하는 방식을 취하면 좋을 것 같네요~