Skip to content

서브모듈 적용기

ggyool edited this page Jul 16, 2021 · 11 revisions

1. 서브모듈이 될 repo 만들기


서브모듈을 관리할 Private 저장소 추가

1

Private 레포에 필요한 파일 생성

2

2. 메인 프로젝트에 서브모듈 추가하기

  • backend/src/core/main/resources/dev 디렉토리에 서브모듈을 넣고싶은 상황

메인 프로젝트에서 Terminal 실행

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에 서브모듈이 추가된 것을 확인할 수 있다.

3


3. 젠킨스 설정

4

Source Code Management 구간

  • 아래 두가지를 추가한다. (소스코드 레포지토리와 서브모듈 모두에 권한이 있는 계정을 사용하는 것을 추천한다.)
  • 이미 젠킨스를 사용하여 CI/CD를 구축한 상태라면 이 두 정보는 이전에 추가했을 것이다.
  1. 서비스의 코드가 있는 레포지토리 정보
  2. 그 레포지토리에 권한이 있는 계정 정보

조금 아래에 있는 Additional Behaviours에서 Add를 누르고 Advanced sub-modules behaviours를 선택한다. 서비스 코드 레포지토리에 서브모듈이 있을 경우, 젠킨스에서 빌드할 때 추가 옵션을 선택하게 해주는 기능이다.

5


아래의 사진에서 보이는 세 체크 박스를 선택한다. 체크 박스의 의미는 다음과 같다:

  1. 레포지토리에 있는 서브모듈 모두 업데이트 (서브모듈을 pull하겠다는 의미)
  2. 업데이트 할 때 서브모듈이 바라보고 있는 브랜치의 가장 최신 커밋을 가지고 오기
  3. 서브모듈 레포지토리의 권한을 확인할 때 서비스 코드 레포지토리 권한 계정 사용 6

4. 서버

7
  • 서버의 애플리케이션 실행 스크립트에 설정 파일 경로를 명시하는 플래그 추가
  • 위와 같이 설정하고 새로운 빌드를 실행시켜보자.
  • 젠킨스가 새로운 jar 파일을 빌드할 때마다 서브모듈의 변경사항을 확인하고, 변경된 부분이 있을 경우 자동으로 반영해줄 것이다.
  • 여기서 명심해야할 것은, 젠킨스는 자신의 로컬 환경에 있는 서브모듈만을 업데이트하기 때문에 서비스의 레포지토리 안에 있는 서브모듈 버전을 업데이트하려면 직접 push 해야한다.
Clone this wiki locally