튜토리얼: 첫 번째 GitLab CI/CD 파이프라인 생성 및 실행

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

이 튜토리얼에서는 GitLab에서 CI/CD 파이프라인을 구성하고 실행하는 방법을 안내합니다.

이미 기본 CI/CD 개념에 익숙하다면 복잡한 파이프라인 생성 튜토리얼에서 일반적인 키워드를 배울 수 있습니다.

준비 사항

시작하기 전에 다음을 확인하세요:

  • CI/CD를 사용하려는 GitLab 프로젝트가 있어야 합니다.
  • 해당 프로젝트의 Maintainer 또는 Owner 역할이 있어야 합니다.

프로젝트가 없는 경우, https://gitlab.com에서 무료로 공개 프로젝트를 생성할 수 있습니다.

단계

첫 번째 파이프라인을 생성하고 실행하려면 다음을 수행합니다:

  1. 파이프라인을 실행할 수 있는 런너가 있는지 확인하세요.

    GitLab.com을 사용하고 있다면 이 단계를 건너뛸 수 있습니다. GitLab.com은 인스턴스 런너를 제공합니다.

  2. 저장소의 루트에 .gitlab-ci.yml 파일을 생성하세요. 이 파일에서 CI/CD 작업을 정의합니다.

해당 파일을 저장소에 커밋하면 러너가 작업을 실행합니다. 작업 결과는 파이프라인에서 표시됩니다.

Ensure you have runners available

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

사용 가능한 러너를 확인하려면 다음을 수행하세요:

  • 설정 > CI/CD로 이동하여 러너를 확장하세요.

적어도 하나의 활성 러너가 있고 옆에 녹색 원이 표시된 상태라면 작업을 처리할 수 있는 러너가 있습니다.

러너가 없는 경우

러너가 없는 경우:

  1. 로컬 머신에 GitLab Runner를 설치하세요.
  2. 프로젝트에 러너를 등록하세요. shell 실행기를 선택하세요.

CI/CD 작업이 실행되면, 나중의 단계에서 로컬 머신에서 실행됩니다.

.gitlab-ci.yml 파일 생성

이제 .gitlab-ci.yml 파일을 생성하세요. 이 파일은 GitLab CI/CD에 대한 명령을 지정하는 YAML 파일입니다.

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

  • 러너가 실행해야 하는 작업의 구조 및 순서
  • 특정 조건이 발생했을 때 러너가 내려야 하는 결정

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

  1. 왼쪽 사이드바에서 Code > Repository를 선택하세요.
  2. 파일 목록 위에 커밋할 브랜치를 선택하세요. 확실하지 않다면 master 또는 main을 남기세요. 그런 다음, 플러스 아이콘()을 선택하고 새 파일을 선택하세요:

    새 파일

  3. 파일 이름.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
    

    이 예제에서는 build-job, test-job1, test-job2, deploy-prod 네 개의 작업이 표시됩니다. echo 명령어에서 나열된 주석은 작업을 볼 때 UI에 표시됩니다. 미리 정의된 변수$GITLAB_USER_LOGIN$CI_COMMIT_BRANCH의 값은 작업 실행 시 채워집니다.

  4. 변경 사항 커밋을 선택하세요.

파이프라인이 시작되고, .gitlab-ci.yml 파일에서 정의한 작업이 실행됩니다.

파이프라인 및 작업 상태 보기

이제 파이프라인 및 해당 작업을 살펴봅니다.

  1. 빌드 > 파이프라인으로 이동합니다. 세 단계를 가진 파이프라인이 표시됩니다:

    세 단계

  2. 파이프라인 ID를 선택하여 파이프라인을 시각적으로 확인합니다:

    파이프라인 그래프

  3. 작업 이름을 선택하여 작업 세부정보를 확인하세요. 예를 들어, deploy-prod:

    작업 세부정보

성공적으로 첫 번째 GitLab CI/CD 파이프라인을 생성했습니다. 축하합니다!

이제 .gitlab-ci.yml을 사용자 정의하고 더 고급적인 작업을 정의할 수 있습니다.

.gitlab-ci.yml

.gitlab-ci.yml 파일 작업을 시작하는 몇 가지 팁은 다음과 같습니다.

.gitlab-ci.yml 전체 구문은 전체 CI/CD YAML 구문 참조를 참조하세요.

  • 파이프라인 편집기를 사용하여 .gitlab-ci.yml 파일을 편집합니다.
  • 각 작업에는 스크립트 섹션이 있고 해당하는 단계에 속합니다:
    • stage는 작업의 순차적 실행을 설명합니다. 러너가 사용 가능하면 동일한 단계의 작업이 병렬로 실행됩니다.
    • 작업을 단계 순서에서 벗어나게 실행하려면 needs 키워드를 사용하세요. 이렇게 하면 유향 비순환 그래프(DAG)가 생성됩니다.
  • 작업 및 단계의 작동 방식을 사용자 정의하는 추가 구성을 설정할 수 있습니다:
    • 언제 작업을 실행하거나 건너뛸지 지정하려면 rules 키워드를 사용하세요. 기존 키워드인 onlyexcept는 여전히 지원되지만 같은 작업에서는 더 이상 rules와 함께 사용할 수 없습니다.
    • cacheartifacts를 사용하여 파이프라인에서 작업 및 단계 간 정보를 유지하려면 사용하세요. 이러한 키워드는 모든 작업에 대해 각각의 박제 러너를 사용할 때에도 종속성 및 작업 출력을 저장하는 방법입니다.
    • 모든 작업에 적용되는 추가 구성을 지정하려면 default 키워드를 사용하세요. 이 키워드는 종종 각 작업에서 실행해야 하는 before_scriptafter_script 섹션을 정의하는 데 사용됩니다.

관련 주제

  • CircleCI에서 마이그레이션
  • Jenkins에서 마이그레이션
  •  처음으로 GitLab 및 CI/CD를 시청하세요. 이것은 GitLab의 빠른 소개, CI/CD의 첫 단계, Go 프로젝트 빌드, 테스트 실행, CI/CD 파이프라인 편집기 사용, 비밀 및 보안 취약점 감지 및 비동기 연습을 위한 추가 연습을 제공합니다.
  •  GitLab CI 소개를 시청하세요. 이 워크샵은 Web IDE를 사용하여 CI/CD를 사용하여 소스 코드를 빌드하고 단위 테스트를 실행하는 데 빠르게 시작하는 데 도움이 됩니다.