-
Notifications
You must be signed in to change notification settings - Fork 8
서브모듈 적용기
joanne edited this page Jul 18, 2021
·
11 revisions
- backend/src/core/main/resources/dev 디렉토리에 서브모듈을 넣고싶은 상황
cd backend/src/core/main/resources
git submodule add -b master [https://github.com/botobo-team/dev.git](https://github.com/botobo-team/dev.git) dev
- 서브모듈을 만들기 싶은 경로(resources)로 가서 dev라는 서브모듈을 만들었다. 메인 프로젝트의 Repo에 서브모듈이 추가된 것을 확인할 수 있다.
- 아래 두가지를 추가한다. (소스코드 레포지토리와 서브모듈 모두에 권한이 있는 계정을 사용하는 것을 추천한다.)
- 이미 젠킨스를 사용하여 CI/CD를 구축한 상태라면 이 두 정보는 이전에 추가했을 것이다.
- 서비스의 코드가 있는 레포지토리 정보
- 그 레포지토리에 권한이 있는 계정 정보
조금 아래에 있는 Additional Behaviours에서 Add를 누르고 Advanced sub-modules behaviours를 선택한다. 서비스 코드 레포지토리에 서브모듈이 있을 경우, 젠킨스에서 빌드할 때 추가 옵션을 선택하게 해주는 기능이다.
- 레포지토리에 있는 서브모듈 모두 업데이트 (서브모듈을 pull하겠다는 의미)
- 업데이트 할 때 서브모듈이 바라보고 있는 브랜치의 가장 최신 커밋을 가지고 오기
- 서브모듈 레포지토리의 권한을 확인할 때 서비스 코드 레포지토리 권한 계정 사용
- 서버의 애플리케이션 실행 스크립트에 설정 파일 경로를 명시하는 플래그 추가
- 위와 같이 설정하고 새로운 빌드를 실행시켜보자.
- 젠킨스가 새로운 jar 파일을 빌드할 때마다 서브모듈의 변경사항을 확인하고, 변경된 부분이 있을 경우 자동으로 반영해줄 것이다.
- 여기서 명심해야할 것은 서브모듈이 있는 Private 저장소에 push를 해도 메인 프로젝트의 서브모듈은 이전 커밋을 바라보고 있기때문에 젠킨스 배포가 시작되지 않는다. (2021-botobo는 변화하지 않았기 때문)
- 젠킨스 배포를 시작하려면 서브모듈의 변화를
git submodule update --remote --merge
의 명령어를 통해 메인 프로젝트로 가져온 뒤 push 해야한다.
- 이미 메인프로젝트의 develop의 서브모듈관련 설정은 되어있다.
- 하지만 자신의 로컬에 서브모듈 설정이 되어있지 않은 팀원들은 간단한 설정을 해야한다. (pull을 한다고해서 서브모듈의 데이터는 가져와지지 않는다.)
git submodule update --remote --merge
cd backend/src/main/resources/dev
git clone —-recurse—submodules https://xxxx.git
build.gradle에 다음 내용을 작성한다.
task copyDev(type: Copy) {
from '../dev/application-dev.yml'
into './src/main/resources'
}
build {
dependsOn copyDev
}
Code Convention
- AWS 배포 및 Jenkins CI/CD 🐳
- Nginx로 로드 밸런싱하기
- How to Git Rebase?
- 잘못된 깃 브랜치에서 탈출하기
- 서브모듈 도입기
- 소나큐브 도입기
- Flyway 도입기
- DB Replication을 위한 데이터베이스 환경 설정
- 무중단 배포 도입기
- nginx 설정파일 변경하는 방법
- 로그인, 로그아웃 흐름정리
- About Redis
- Criteria -> QueryDSL로 변경
- S3 파일 업로드 구조
2차 ~ 4차 회의 및 데일리 미팅은 디스코드에서 진행되어 이슈로 반영되었습니다.
이후 회의 및 데일리 미팅은 디스코드에서 진행되어 이슈로 반영되었습니다.