Merge Requests

TobeDevOps에서는 프로젝트 생성 시 자동으로 만들어진 3개의 배포 환경 중 검증(STG) 환경을 사용하기 위해 개발 브랜치(Develop Branch)를 메인 브랜치(Main Branch)에 Merge하는 과정이 필요합니다.

Merge(머지)란 변경 및 수정한 프로젝트 소스를 브랜치(Branch)에 병합하는 과정으로 프로젝트 참여자는 Merge Request를 관리자에게 요청하고 관리자는 Request 내역을 승인하여 Merge 합니다.

프로젝트 권한

Git Repository 권한

Merge 사용 기능

프로젝트 관리자

Maintainer

Merge Request 생성,

Merge 승인

멤버

Developer

Merge Request 생성

게스트

Reporter

모두 사용할 수 없음

Merge Request의 자세한 설명은 Git 매뉴얼을 참고해 주세요.

Merge Requests 조회

[Merge Request] 메뉴를 선택하여 프로젝트에 생성된 서버 별 소스 병합 현황을 확인합니다.

화면 상단에서는 내가 할당된 목록과 프로젝트 상태 별 목록을 확인할 수 있는 구분 탭으로 검색 조건을 설정할 수 있으며 기본 값은 [My Assigned]입니다.

이미지_2024-07-30_094447536

내가 할당된 머지 필터(My Assigned)를 삭제하면 Running 상태의 프로젝트 서버 목록을 확인할 수 있으며 프로젝트 서버 목록이 조회된 상태에서 상단의 My Assigned(사람 형태의 아이콘) 버튼을 클릭하면 내가 할당된 목록을 다시 확인할 수도 있습니다.

머지1

서버별 목록은 프로젝트 상태 및 조건을 검색하여 사용할 수 있습니다.

사용 방법은 공통 그리드를 참고해 주세요.

프로젝트 서버 목록에서는 프로젝트와 프로젝트가 포함된 스페이스의 기본 정보를 확인할 수 있습니다.

머지3

1내가 포함된 프로젝트의 서버를 즐겨찾기하여 사용할 수 있습니다.

2생성된 서버가 속한 스페이스 명칭입니다.

3생성된 서버가 속한 스페이스 아이디입니다.

4생성된 서버가 속한 프로젝트 명칭입니다.

5생성된 서버가 속한 프로젝트 아이디입니다.

6생성된 서버가 속한 프로젝트 상태입니다. 프로젝트 생성 상태에 따라 5개(Running, Error, Stop, Creating, Deleting)의 상태 값이 있습니다.

7생성된 서버의 구분입니다. DB를 제외한 서버 목록(WEB, WAS, XENI)을 확인할 수 있습니다.

8생성된 서버의 아이디입니다.

서버 선택 시 “Open” 상태의 Request 목록이 조회됩니다.

이미지_2024-07-30_094836564

Merge Request 상태

설명

Open

현재 브랜치가 타겟 브랜치에 병합 되기 전 상태

Merged

현재 브랜치가 타겟 브랜치에 병합 완료된 상태

Closed

병합이 거부된 상태, 병합되지 않고 종료된 상태

Request 목록의 제목 클릭 시 GitLab(Git Repository)으로 이동하여 선택한 Merge Request 상세 정보를 확인합니다.

이미지_2024-07-30_094947443

[More] 버튼을 클릭하면 선택된 서버의 전체 Merge Request 목록을 확인할 수 있는 Git Repository로 이동합니다.

머지7

Merge Requests 추가

가이드에 작성된 내용은 개발 브랜치를 검증 브랜치로 병합(Merge) 요청하는 과정으로 구성되어 있으며 프로젝트 관리자 및 멤버 권한의 사용자가 사용할 수 있습니다.
개발 브랜치 생성 및 병합 요청하는 방법에 대해서는 이슈 메뉴에서 확인 할 수 있습니다.

Merge 진행할 서버의 Git Repository로 이동하여 [Code > Merge Requests] 메뉴로 이동합니다.

이미지_2024-07-30_095058819

1

Merge requests 메뉴로 이동하여 [New merge request] 버튼을 클릭합니다.

이미지_2024-07-30_095122992

Source branch는 Merge 요청할 Develop Branch를 Target branch는 반영할 Main Branch를 선택합니다. 브랜치가 선택 되었다면 [Compare branches and continue] 버튼을 클릭하여 Merge request 추가 작성 화면으로 이동합니다.

이미지_2024-07-30_095244537

브랜치 선택이 잘못된 경우 화면의 Error 메시지가 노출되며 Merge Request가 진행되지 않습니다.

이미지_2024-07-30_095344408

Merge request의 내용 입력 후 [Create merge request] 버튼을 클릭하여 Merge 요청을 완료합니다.

이미지_2024-07-30_095418242

1Merge할 개발 브랜치(develop)과 반영될 검증 브랜치(main)를 확인합니다.

2주요 커밋 메시지를 타이틀로 작성합니다.

3커밋 메시지 적용 항목 및 설명을 작성합니다.

4Merge Request를 승인하여 Merge 반영할 승인자를 선택합니다. Assignee를 선택할 경우 지정된 Merge 승인자는 포털의 Merge request > My Assigned 카드에서 해당 내용을 확인할 수 있습니다.

5Delete source branch when merge request is accepted. 체크를 반드시 해제합니다. 해제하지 않으면 개발 브랜치(develop)는 삭제됩니다.

브랜치 Merge

프로젝트에 추가된 Merge 요청 목록을 확인하고 승인합니다. Merge 승인은 Git Repository에 Maintainer 권한인 프로젝트 관리자 권한만 사용할 수 있습니다.

1

프로젝트 관리자에게 할당된 Merge 요청 내역을 확인한 후, 승인할 제목을 클릭하여 Git Repository의 Merge Requests 상세 화면으로 이동합니다.

이미지_2024-07-30_095940383

2

GitLab에 접속한 계정이 Merge 승인자의 경우 [Merge] 버튼이 노출됩니다. Merge할 개발 브랜치의 수정 내역을 확인하고 Merge 버튼을 클릭하면 승인되어 Open 상태가 Merged 상태로 변경됩니다.

이미지_2024-07-30_100019812

만약 Merge 확인 창에 ‘Delete source branch’ 가 체크되어 있다면 현재 반영할 소스의 브랜치가 삭제됩니다. Source Branch가 Develop(개발 브랜치)인 경우 반드시 체크 박스를 해제해 주세요.

이미지_2024-07-30_100049393

3

Merge 승인되면 검증 브랜치 빌드가 자동으로 진행됩니다. 진행 내역은 하단 Pipeline을 통해 확인할 수 있습니다.

이미지_2024-07-30_100117423

운영 태그(release-*) 관리

TobeDevOps는 프로젝트 검증 브랜치를 운영 환경에 배포하는 방법으로 git 태그(tag) 기능을 사용하여 버전을 관리합니다.

TobeDevOps에서 제공하는 빌드 기능은 태그(release-*) 명칭에 규칙이 적용됩니다.

위 규칙에 따라 검증 브랜치의 소스를 태깅하면 자동으로 운영 환경에 빌드가 진행되며 프로젝트 관리자만 태깅할 수 있습니다.

태그 확인하기

1

태그를 확인할 서버의 Git Repository로 이동합니다.

이미지_2024-07-30_102709552

프로젝트 구성의 서버 정보에서 각 서버의 Git URL을 통해 Repository로 이동하거나 [빌드 > 프로젝트 서버 리스트 선택 > STG 탭]의 Pipeline 메시지를 클릭하여 이동할 수 있습니다.

2

이동한 화면에서 [Gitlab > Code > Tags] 메뉴로 이동하여 태그된 목록을 확인합니다.

이미지_2024-07-30_102803921

태그 생성하기

1

[Tags] 메뉴의 우측 상단 [New tag] 버튼을 클릭하여 태그 생성 화면으로 이동합니다.

이미지_2024-07-30_102817505

2

태깅할 브랜치를 선택하고 태그명을 작성하여 새로운 태그를 생성합니다.

이미지_2024-07-30_102841819

1[Tag name]에서 사용할 태그명을 태그 명명 규칙을 준수하여 작성합니다. release- 로 생성된 태그만 자동 빌드되며 태그명은 버전 관리를 위해 release-x.x.x(major, minor, patch) 형식을 권장합니다.

2[Create Form]에서 태깅 할 브랜치를 선택합니다. 반드시 검증 브랜치를 선택해 주세요.

3[Message]에서 태그 정보를 작성합니다. 메시지 입력은 별도 양식 없이 자유롭게 작성할 수 있습니다.

3

태그 생성 정보를 입력하고 [Create tag]버튼을 클릭하여 생성한 태그를 확인합니다.

이미지_2024-07-30_103004752

release-* 규칙에 맞게 태그를 생성하였을 경우, 빌드 메뉴에서 운영 환경이 자동 빌드 되는 것을 확인할 수 있습니다.

이미지_2024-07-30_103100138