튜토리얼: 첫 번째 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 작업을 정의하는 곳입니다.

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

러너가 있는지 확인하세요

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

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

  • Settings > CI/CD로 이동한 후 Runners를 확장하세요.

활성 상태의 러너가 하나 이상 있으면, 그 옆에 초록색 원이 표시되며, 작업을 처리할 수 있는 러너가 있습니다.

러너가 없는 경우

러너가 없으면:

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

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

.gitlab-ci.yml 파일 생성

이제 .gitlab-ci.yml 파일을 생성하세요. 이는 GitLab CI/CD를 위한 지침을 지정하는 YAML 파일입니다.

이 파일에서 정의하는 내용:

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

프로젝트에서 .gitlab-ci.yml 파일을 생성하려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Code > Repository를 선택합니다.
  3. 파일 목록 위에서 커밋하려는 브랜치를 선택합니다.
    확실하지 않은 경우 master 또는 main을 유지합니다.
    그런 다음 더하기 아이콘 ( )를 선택하고 New file을 선택합니다:

    New file

  4. Filename.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의 값이 채워집니다.

  5. Commit changes를 선택합니다.

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

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

이제 파이프라인과 그 안의 작업을 살펴보세요.

  1. Build > Pipelines로 이동합니다. 세 개의 단계가 있는 파이프라인이 표시되어야 합니다:

    Three stages

  2. 파이프라인 ID를 선택하여 파이프라인의 시각적 표현을 확인하세요:

    Pipeline graph

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

    Job details

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

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

.gitlab-ci.yml

.gitlab-ci.yml 파일을 사용하여 작업하는 데 도움이 되는 몇 가지 팁입니다.

전체 .gitlab-ci.yml 구문에 대해서는 CI/CD YAML 구문 참조를 확인하세요.

  • 파이프라인 편집기를 사용하여 .gitlab-ci.yml 파일을 편집합니다.
  • 각 작업에는 스크립트 섹션이 포함되어 있으며 단계에 속합니다:
    • stage는 작업의 순차적 실행을 설명합니다. 사용 가능한 러너가 있을 경우, 단일 단계의 작업은 병렬로 실행됩니다.
    • needs 키워드를 사용하여 작업을 단계 순서 외부에서 실행하여 파이프라인 속도와 효율성을 높입니다.
  • 작업과 단계가 수행되는 방식을 사용자 정의하기 위해 추가 구성을 설정할 수 있습니다:
    • rules 키워드를 사용하여 작업을 실행하거나 건너뛸 시기를 지정합니다. onlyexcept 레거시 키워드는 여전히 지원되지만, 같은 작업에서 rules와 함께 사용할 수 없습니다.
    • cacheartifacts를 사용하여 파이프라인에서 작업과 단계 간의 정보를 지속적으로 유지합니다. 이 키워드는 각 작업에 대해 일시적인 러너를 사용할 때도 종속성과 작업 출력을 저장하는 방법입니다.
    • default 키워드를 사용하여 모든 작업에 적용되는 추가 구성을 지정합니다. 이 키워드는 종종 각 작업에서 실행되어야 하는 before_scriptafter_script 섹션을 정의하는 데 사용됩니다.

관련 주제

다음에서 마이그레이션합니다:

시청하세요:

  •  처음 보는 GitLab 및 CI/CD. GitLab에 대한 간단한 소개와 CI/CD의 첫 단계, Go 프로젝트 빌드, 테스트 실행, CI/CD 파이프라인 편집기 사용, 비밀 및 보안 취약점 감지, 그리고 비동기 연습을 위한 추가 연습이 포함되어 있습니다.
  •  GitLab CI 소개. 이 워크샵에서는 웹 IDE를 사용하여 CI/CD를 사용하여 소스 코드를 빠르게 구축하고, 단위 테스트를 실행하는 방법을 보여줍니다.