GitLab

haesim·2022년 6월 16일
1

GitLab 기본 사용법

Workflow

업무흐름
gaeasoft의 workflow를 참고하였다. 해당 프로세스의 진행 주체는 PM이라고 보면 된다.

1. Group 등록

프로젝트 팀 단위로 Group 을 만드는 과정이다. 수행 팀이 하나라면 시스템 단위로 Group을 생성하면되겠다.

1-1. GitLab Menu > Groups > Create group

1-2. 좌측 Create Group 선택

1-3. 필요한 정보 기입 후 Create Group 클릭

1-4. 생성 후 화면


간단한 절차로 Group 생성은 완료가 되었다. 생성 후에 보면 subGroup과 해당 Group에서 수행하는 project를 등록할 수 있는 버튼이 보인다.(노란색 영역)
그리고 Group 내에 있는 모든 이슈, CI/CD를 모니터링 등을 기능을 제공하는 메뉴를 볼 수 있다.(초록색 영역)

2. Member 등록 및 Permission(접근권한) 설정

Group 내에 실제 팀원들을 추가하고 팀원별로 Permission을 설정해야한다.

2-1. Menu > Group information > Members

2-2. 멤버초대(Invite Member)


GitLab의 Username이나, 이메일 주소로 멤버를 초대할 수 있다. 초대시, role을 선택해야하고, 선택적으로 기간제로 초대도 가능하다. 각 권한은 아래 내용을 참고하면 된다.

  • Owner
    • PM이 이에 해당한다
    • Group 등록한 팀원으로 모든 권한을 가지고 있다.
  • Maintainer
    • PL이 이에 해당한다.
    • Group 수정/삭제와 Project 이동/삭제를 제외하고 Owner와 같은 권한을 가지고 있다.
    • 업무를 할당하고 소스코드에 대한 Merge Reqeust를 승인하는 역할을 담당한다.
  • Developer
    • 프로젝트를 수행하는 팀원이 이에 해당한다.
    • 새로운 브랜치를 만들고 push가 가능하지만 protected 브랜치에는 push가 불가능하다.
    • 기본적으로 master 브랜치가 protected 브랜치로 생성되는데 Developer는 master 브랜치로 push가 불가하다.
    • master 브랜치로 Merge하기 위해서는 Merge Reqeust 작성해서 Asignee(Maintainer 등)의 승인이 필요하다.
  • Reporter
    • QA나 빌드/배포 팀원이 이에 해당한다.
    • Project 조회가 가능하고 Issue와 Label에 대한 관리도 가능하다.
  • Guest
    • Issue 등록과 comment 남기는 것, Group & Project 조회 가능하다.

3. Project 등록

소스코드 관리 단위로 Project를 만든다. 소스코드 관리 단위라는 것은 IDE(통합개발도구)에서 git을 통해 Project를 checkout해서 개발이 가능한 형태를 얘기한다.

예를 들어, NFT 마켓을 구축하는 프로젝트이고 안드로드와 iOS 앱을 개발해야 한다면 Project는 최소 5개(FE, BE(WebApp), Android, iOS, 프로젝트산출물 관리용)를 등록한다.

3-1. Group > New project

3-2. 생성방식 선택


New project버튼을 클릭하면, 4가지 방식의 프로젝트 생성 방법이 나타난다. 대부분은 blank project로 시작하여 개발을 진행한다.

  • Create blank project : 빈 프로젝트 생성
  • Create from template : GitLab이 제공하는 템플릿 프로젝트 생성
  • Import project : 이미 있는 project를 넣을 때 사용.
  • Run CI/CD for external repository : 다른 외부 저장소(Github 등)과 연계하여 GitLab의 CI/CD를 사용할 때 사용.

4. Milestone 등록

Milestone은 릴리즈 단위나 프로젝트 단계별 단위로 만든다. 업무 목표와 완료일을 작성하고 Milestone별로 Issue를 등록하여 Issue와 Merge Reqeust의 완료여부에 따라 업무의 진척도를 모니터링할 수 있다.

예를 들어, 전통적인 프로젝트 진행 방식이라면 요구분석, 설계, 구현, 검수, 상용화 단계별로 Milestone을 등록하고, 애자일 방식의 경우는 Sprint 단위로 등록을 한다. 유지보수의 경우에는 릴리즈 단위로 Milestone을 등록한다.

4-1. Group > issue > Milestones


사용자 화면, Group, Project 마다 Milestones 메뉴에 들어갈 수 있다. 대신 조회 범위가 좁하지는 것이다.

4-2. New Milestone 생성


New milestone 버튼을 클릭하여 Milestone을 생성한다.

4-3. Milestone 정보 입력



Milestone의 제목, 시작일, 종료일을 설정하고 해당 Milestone에 대한 설명을 Markdown으로 작성한다

4-4. Milestone이 생성된 모습


milestone이 생성되면, 방금 전 작성했던 Miltestone의 설명이 있는 부분(노란색 영역)과 요약으로 진척도를 알 수 있는 부분(보라색 영역), 그리고 milestone에서 발생한 이벤트 등을 볼 수 있는 부분(초록색 영역)으로 나눠져서 관리가 가능하다.

5. Label 등록

Label은 Issues와 Merge Requests 등록 시에 태그로 사용한다. 태그는 업무를 구분하는 카테고리 성격으로 보면 된다. 최초 Label 생성 시에는 기본 셋으로 선택해서 만들 수 있다.

기본적으로 기본 셋을 생성해서 사용하고 필요한 경우에 Label을 추가/수정/삭제한다.

5-1. Menu > Group information > Labels

5-2. New Label 생성



Group Menu에서 들어가면 개별적으로 커스텀 라벨을 생성하는 New label 버튼만 보이지만, Group에서 관리하고 있는 Project 메뉴로 들어가서 Label 메뉴로 진입하면 위와같이 Generate a default set of labels 라는 버튼이 보이게된다. 이를 통해 GitLab에서 제공하는 기본 Label set을 설정 할 수 있다.
보통은 기본 셋을 생성해서 필요한 경우에 Label을 추가/수정/삭제 하는 경우가 많다.

5-3. Label 정보 입력


신규 Label의 경우, Label 제목, 설명, 색상을 설정할 수 있다.

5-4. Label이 생성된 모습


Project에서 Default Set으로 Label을 생성하고, Group 에서 추가로 Label을 생성(노란색 영역) 해준 결과이다. Project에서 생성한 Label의 경우에는 Group Label 메뉴에서 보이지 않는다.

6. Issue 등록 및 Assign

Milestone에서 리스팅했던 업무 단위로 Issue를 등록하고 이에 해당하는 작업내용, 작업자, Milestone, Label 을 설정한다.

6-1. Menu > Issues > List

6-2. Create Issue


issue는 Project에 종속되어있기 때문에 반드시 Project를 설정해주고 생성해야한다.

6-3. Issue 정보 입력


Milestone과 동일하게 설명 부분(초록색 영역), 할당 정보 부분(파란색 영역)으로 나눠져 있다. 추가적으로 Issue에 대한 confidential(기밀성) 속성을 부여할 수 있다.(노란색 영역)
기본적으로 Reporter 이상인 권한을 가진 팀원들만 해당 Issue를 조회할 수 있다. (단, 직접 할당 받은 경우 Guest도 가능함)

6-4. Issue가 생성된 모습

7. 업무진행 및 Issue 종료



위 사진은 GitLab에서 Migration 관련 Issue를 진행한 내용이다. 각 할당 된 인원들이 해당 이슈에서 대화하면서 해당 이슈가 완료되었을 경우 , Close issue 버튼으로 종료하면 된다.

CI/CD Pipeline 구성

profile
haesim

0개의 댓글