GitLab CI/CD 시작하기

시작하기 전에 다음 사항을 확인합니다.

  • CI/CD를 사용하려는 GitLab의 프로젝트
  • 프로젝트에 대한 Maintainer 또는 Owner 권한

프로젝트가 없다면 GitLab.com에서 공개 프로젝트를 만들 수 있습니다.

CI/CD 프로세스 개요

GitLab CI/CD를 사용하려면 :

  1. Job을 실행할 수 있는 러너(Runner)가 있는지 확인합니다. 러너가 없으면 GitLab Runner를 설치하고 인스턴스, 프로젝트 또는 그룹에 대한 Runner(러너)를 등록합니다.
  2. .gitlab-ci.yml 파일을 리포지터리의 루트에 생성합니다. 이 파일은 CI/CD job을 정의하는 곳입니다.

파일을 리포지터리에 커밋하면 러너가 job을 실행합니다. Job 결과는 파이프라인에 표시됩니다.

러너(Runner)를 사용할 수 있는지 확인

GitLab에서 러너는 CI/CD job을 실행하는 에이전트입니다.

사용 가능한 러너를 보려면 :

  • Settings > CI/CD로 이동하여 Runners를 확장합니다.

활성 상태인 러너가 하나 이상 있고 그 옆에 녹색 원이 있으면, job을 처리할 수 있는 러너가 있는 것입니다.

UI의 Runners 페이지에 러너가 나열되지 않으면, 사용자 또는 시스템 관리자가 GitLab Runner를 설치하고 하나 이상의 러너를 등록해야 합니다.

CI/CD를 테스트할 때, 로컬 컴퓨터에 GitLab Runner를 설치하고 러너를 등록할 수 있습니다. CI/CD job이 실행되면 이후 단계에 로컬 컴퓨터에서도 실행됩니다.

.gitlab-ci.yml 파일 생성

.gitlab-ci.yml 파일은 GitLab CI/CD에 대한 특정 지침을 구성하는 YAML 파일입니다.

이 파일에서는 다음을 정의합니다.

  • 러너가 실행해야 하는 job의 구조와 순서
  • 특정 조건이 발생할 때 러너가 내려야 하는 결정

예를 들어, master를 제외한 브랜치에 커밋할 때 테스트 모음을 실행할 수 있습니다. master에 커밋하면 동일한 테스트 스위트(Test Suite)를 실행하고 애플리케이션도 게시하려고 합니다.

이 모든 것은 .gitlab-ci.yml 파일에 정의되어 있습니다.

.gitlab-ci.yml 파일을 생성하려면 :

  1. 왼쪽 사이드바에서 Code > Repository로 이동합니다.
  2. 파일 목록 위에서, 커밋할 브랜치를 선택합니다. 확신이 서지 않는다면, mastermain을 떠납니다. 그다음, 플러스(+) 아이콘을 클릭하고, New file을 선택합니다.
GitLab .gitlab-ci.yml 파일 생성 | 인포그랩 GitLab
  1. 파일 이름으로 .gitlab-ci.yml을 입력하고 큰 창에서 다음 샘플 코드를 붙여 넣습니다.
build-job:
stage: build
script:
- echo "Hello, $GITLAB_USER_LOGIN!"

test-job1:
stage: test
script:
- echo "This job tests something"

test-job2:
stage: test
script:
- echo "This job tests something, but takes more time than test-job1."
- echo "After the echo commands complete, it runs the sleep command for 20 seconds"
- echo "which simulates a test that runs 20 seconds longer than test-job1"
- sleep 20

deploy-prod:
stage: deploy
script:
- echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
environment: production

이 예는 다음 4가지 job을 보여줍니다. build-job, test-job1, test-job2, deploy-prod. echo 명령에 열거된 코멘트는 job을 볼 때 UI에 표시됩니다. $GITLAB_USER_LOGIN$CI_COMMIT_BRANCH는 job이 실행될 때 채워지는 미리 정의된 변숫값입니다.

  1. Commit changes 버튼을 클릭합니다.

커밋되면 파이프라인이 시작되고, .gitlab-ci.yml 파일에 정의한 job을 실행합니다.

파이프라인과 job 상태 보기

변경 사항을 커밋하면 파이프라인이 시작됩니다.

파이프라인을 보려면 :

  • Build > Pipelines로 이동합니다.
    세 단계(Stage)의 파이프라인이 표시되어야 합니다.
GitLab 파이프라인 시각화 | 인포그랩 GitLab
  • 파이프라인의 시각적 표현을 보려면, 파이프라인 ID를 클릭합니다.
GitLab 파이프라인 세부사항 | 인포그랩 GitLab
  • Job의 세부 정보를 보려면, job 이름(예: deploy-prod)을 클릭합니다.
GitLab 파이프라인 Job 세부사항 | 인포그랩 GitLab

GitLab에서 첫 CI/CD 파이프라인을 성공적으로 만들었습니다. 축하합니다! 이제 .gitlab-ci.yml을 맞춤화하고, 더 고급 수준인 job을 정의할 수 있습니다.

.gitlab-ci.yml

.gitlab-ci.yml 파일로 작업을 시작하기 위한 팁이 있습니다.

전체 .gitlab-ci.yml 구문은 전체 .gitlab-ci.yml 키워드 레퍼런스를 확인하세요.

  • 파이프라인 에디터를 사용해 .gitlab-ci.yml 파일을 편집합니다.
  • 각 job은 스크립트 섹션을 포함하며, 이는 스테이지에 속합니다.
    • stage는 job의 순차 실행을 설명합니다. 사용할 수 있는 여러 개의 러너가 있다면, 단일 스테이지에서 job은 병렬로 실행됩니다.
    • 스테이지 순서에서 벗어나 job을 실행하려면 needs 키워드를 사용합니다. 이는 Directed Acyclic Graph(DAG)를 만듭니다.
  • 추가 구성을 설정해 job과 스테이지 수행 방식을 맞춤화할 수 있습니다.
    • rules 키워드를 사용해 언제 job을 실행하고 건너뛸지 지정합니다. onlyexcept 레거시 키워드는 여전히 지원되지만 같은 job에서 rules와 함께 사용할 수 없습니다.
    • cacheartifact를 사용해 파이프라인에서 job과 스테이지 전반에 걸쳐 정보를 지속적으로 유지합니다. 이러한 키워드는 각 job에 임시 러너를 사용할 때도 의존성과 job 출력을 저장하는 방법입니다.
    • default 키워드를 사용해 모든 job에 적용되는 추가 구성을 지정합니다. 이 키워드는 모든 job에 실행되도록 before_scriptafter_script를 정의하는 데 자주 사용됩니다.
GitLab 원문 보기