InfoGrab DocsInfoGrab Docs

GitLab CI/CD 시작하기

요약

CI/CD는 소프트웨어 개발의 지속적인 방법론으로, 반복적인 코드 변경 사항을 지속적으로 빌드, 테스트, 배포 및 모니터링합니다. 이 반복적인 프로세스는 버그가 있거나 실패한 이전 버전을 기반으로 새 코드를 개발할 가능성을 줄이는 데 도움이 됩니다.

CI/CD는 소프트웨어 개발의 지속적인 방법론으로, 반복적인 코드 변경 사항을 지속적으로 빌드, 테스트, 배포 및 모니터링합니다.

이 반복적인 프로세스는 버그가 있거나 실패한 이전 버전을 기반으로 새 코드를 개발할 가능성을 줄이는 데 도움이 됩니다. GitLab CI/CD는 개발 주기 초기에 버그를 잡을 수 있으며, 프로덕션에 배포된 코드가 확립된 코드 표준을 준수하도록 보장하는 데 도움이 됩니다.

이 프로세스는 더 큰 워크플로우의 일부입니다:

Plan, Create, Verify, Secure, Release, Monitor 단계가 있는 GitLab DevSecOps 라이프사이클.

1단계: 파이프라인 구성#

GitLab CI/CD를 사용하려면 프로젝트 루트에 .gitlab-ci.yml 파일을 추가합니다. .gitlab-ci.yml 파일은 변수, 잡 간의 의존성, 각 잡이 실행될 시기와 방법을 포함하여 CI/CD 파이프라인을 구성하는 스테이지, 잡, 스크립트를 정의합니다.

기본적으로 파일 이름은 반드시 .gitlab-ci.yml이어야 합니다. 파일 이름은 대소문자를 구분합니다. 사용자 정의 파일 이름을 사용할 수도 있습니다.

파이프라인은 스테이지와 잡으로 구성됩니다:

  • 스테이지는 실행 순서를 정의합니다. 일반적인 스테이지로는 build, test, deploy가 있습니다.
  • 잡은 각 스테이지에서 수행할 작업을 지정합니다. 예를 들어 잡은 코드를 컴파일하거나 테스트할 수 있습니다.

예를 들어 build 스테이지와 test 스테이지가 있는 .gitlab-ci.yml 파일은 다음과 같습니다:

stages:
  - build
  - test

build-job:
  stage: build
  script:
    - echo "Compiling the code..."

test-job:
  stage: test
  script:
    - echo "Running tests..."

GitLab은 커밋, 머지 리퀘스트, 일정에 따라 또는 수동으로 실행할 때와 같이 파이프라인이 트리거될 때마다 파이프라인을 생성합니다. 그러면 러너가 파이프라인의 잡을 실행합니다. 파이프라인에서 다양한 도구 및 플랫폼과 통합할 수 있습니다.

자세한 내용은 다음을 참조하세요:

2단계: 러너 찾기 또는 생성#

러너는 잡을 실행하는 에이전트입니다. 이러한 에이전트는 물리적 머신 또는 가상 인스턴스에서 실행될 수 있습니다. .gitlab-ci.yml 파일에서 잡을 실행할 때 사용할 컨테이너 이미지를 지정할 수 있습니다. 러너는 이미지를 로드하고, 프로젝트를 클론하고, 로컬 또는 컨테이너에서 잡을 실행합니다.

GitLab.com을 사용하는 경우 Linux, Windows, macOS의 러너를 이미 사용할 수 있습니다. 필요한 경우 자신의 러너를 등록할 수도 있습니다.

GitLab.com을 사용하지 않는 경우 다음을 할 수 있습니다:

  • 러너를 등록하거나 GitLab Self-Managed 인스턴스에 이미 등록된 러너를 사용합니다.
  • 로컬 머신에 러너를 생성합니다.

자세한 내용은 다음을 참조하세요:

3단계: CI/CD 변수 및 표현식 사용#

GitLab CI/CD 변수는 파이프라인의 잡에 구성 설정 및 비밀번호나 API 키 같은 민감한 정보를 저장하고 전달하는 데 사용하는 키-값 쌍입니다.

GitLab CI/CD 표현식을 사용하면 파이프라인 구성에 데이터를 동적으로 삽입할 수 있습니다. 사용 가능한 데이터는 표현식 컨텍스트에 따라 달라집니다. 예를 들어 inputs 컨텍스트를 사용하면 상위 파일 또는 파이프라인 실행 시 구성 파일로 전달된 정보에 액세스할 수 있습니다.

CI/CD 변수#

CI/CD 변수를 사용하면 다른 곳에서 정의된 값을 잡에서 액세스할 수 있게 하여 잡을 사용자 정의합니다. .gitlab-ci.yml 파일에 CI/CD 변수를 하드코딩하거나 프로젝트 설정에서 설정하거나 동적으로 생성할 수 있습니다. 프로젝트, 그룹, 또는 인스턴스에 대해 정의할 수 있습니다.

다음 유형의 변수를 사용할 수 있습니다:

  • 사용자 정의 변수: UI, API, 또는 구성 파일에서 만들고 관리하는 변수.
  • 사전 정의 변수: GitLab이 현재 잡, 파이프라인, 환경에 대한 정보를 제공하기 위해 자동으로 설정하는 변수.

보안 설정으로 변수를 구성할 수 있습니다:

  • 보호된 변수: 보호된 브랜치나 태그에서 실행되는 잡에 대한 액세스를 제한합니다.
  • 마스크된 변수: 잡 로그에서 변수 값을 숨겨 민감한 정보가 노출되지 않도록 합니다.

자세한 내용은 다음을 참조하세요:

CI/CD 표현식#

CI/CD 표현식은 $[[ ]] 구문을 사용하며 파이프라인을 만들 때 유효성이 검사됩니다. 변경 사항을 커밋하기 전에 파이프라인 편집기에서 표현식의 유효성을 검사할 수도 있습니다.

표현식은 다양한 컨텍스트를 기반으로 동적 구성을 가능하게 합니다:

  • Inputs 컨텍스트 ($[[ inputs.INPUT_NAME ]]): include:inputs를 사용하거나 새 파이프라인이 실행될 때 구성 파일로 전달된 타입이 지정된 매개변수에 액세스
  • Matrix 컨텍스트 ($[[ matrix.IDENTIFIER ]]): 매트릭스 잡 간의 1:1 매핑을 생성하기 위해 잡 의존성에서 매트릭스 값에 액세스

자세한 내용은 다음을 참조하세요:

4단계: CI/CD 컴포넌트 사용#

CI/CD 컴포넌트는 재사용 가능한 파이프라인 구성 단위입니다. CI/CD 컴포넌트를 사용하여 전체 파이프라인 구성 또는 더 큰 파이프라인의 일부를 구성합니다.

include:component로 파이프라인 구성에 컴포넌트를 추가할 수 있습니다.

재사용 가능한 컴포넌트는 중복을 줄이고 유지 관리성을 향상시키며 프로젝트 전반에 걸쳐 일관성을 촉진하는 데 도움이 됩니다. 컴포넌트 프로젝트를 만들고 CI/CD 카탈로그에 게시하여 여러 프로젝트에서 컴포넌트를 공유하세요.

GitLab에는 일반적인 작업 및 통합을 위한 CI/CD 컴포넌트 템플릿도 있습니다.

자세한 내용은 다음을 참조하세요:

GitLab CI/CD 시작하기

GitLab v19.3
Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

CI/CD는 소프트웨어 개발의 지속적인 방법론으로, 반복적인 코드 변경 사항을 지속적으로 빌드, 테스트, 배포 및 모니터링합니다. 이 반복적인 프로세스는 버그가 있거나 실패한 이전 버전을 기반으로 새 코드를 개발할 가능성을 줄이는 데 도움이 됩니다.

CI/CD는 소프트웨어 개발의 지속적인 방법론으로, 반복적인 코드 변경 사항을 지속적으로 빌드, 테스트, 배포 및 모니터링합니다.

이 반복적인 프로세스는 버그가 있거나 실패한 이전 버전을 기반으로 새 코드를 개발할 가능성을 줄이는 데 도움이 됩니다. GitLab CI/CD는 개발 주기 초기에 버그를 잡을 수 있으며, 프로덕션에 배포된 코드가 확립된 코드 표준을 준수하도록 보장하는 데 도움이 됩니다.

이 프로세스는 더 큰 워크플로우의 일부입니다:

Plan, Create, Verify, Secure, Release, Monitor 단계가 있는 GitLab DevSecOps 라이프사이클.

1단계: 파이프라인 구성#

GitLab CI/CD를 사용하려면 프로젝트 루트에 .gitlab-ci.yml 파일을 추가합니다. .gitlab-ci.yml 파일은 변수, 잡 간의 의존성, 각 잡이 실행될 시기와 방법을 포함하여 CI/CD 파이프라인을 구성하는 스테이지, 잡, 스크립트를 정의합니다.

기본적으로 파일 이름은 반드시 .gitlab-ci.yml이어야 합니다. 파일 이름은 대소문자를 구분합니다. 사용자 정의 파일 이름을 사용할 수도 있습니다.

파이프라인은 스테이지와 잡으로 구성됩니다:

  • 스테이지는 실행 순서를 정의합니다. 일반적인 스테이지로는 build, test, deploy가 있습니다.
  • 잡은 각 스테이지에서 수행할 작업을 지정합니다. 예를 들어 잡은 코드를 컴파일하거나 테스트할 수 있습니다.

예를 들어 build 스테이지와 test 스테이지가 있는 .gitlab-ci.yml 파일은 다음과 같습니다:

stages:
  - build
  - test

build-job:
  stage: build
  script:
    - echo "Compiling the code..."

test-job:
  stage: test
  script:
    - echo "Running tests..."

GitLab은 커밋, 머지 리퀘스트, 일정에 따라 또는 수동으로 실행할 때와 같이 파이프라인이 트리거될 때마다 파이프라인을 생성합니다. 그러면 러너가 파이프라인의 잡을 실행합니다. 파이프라인에서 다양한 도구 및 플랫폼과 통합할 수 있습니다.

자세한 내용은 다음을 참조하세요:

2단계: 러너 찾기 또는 생성#

러너는 잡을 실행하는 에이전트입니다. 이러한 에이전트는 물리적 머신 또는 가상 인스턴스에서 실행될 수 있습니다. .gitlab-ci.yml 파일에서 잡을 실행할 때 사용할 컨테이너 이미지를 지정할 수 있습니다. 러너는 이미지를 로드하고, 프로젝트를 클론하고, 로컬 또는 컨테이너에서 잡을 실행합니다.

GitLab.com을 사용하는 경우 Linux, Windows, macOS의 러너를 이미 사용할 수 있습니다. 필요한 경우 자신의 러너를 등록할 수도 있습니다.

GitLab.com을 사용하지 않는 경우 다음을 할 수 있습니다:

  • 러너를 등록하거나 GitLab Self-Managed 인스턴스에 이미 등록된 러너를 사용합니다.
  • 로컬 머신에 러너를 생성합니다.

자세한 내용은 다음을 참조하세요:

3단계: CI/CD 변수 및 표현식 사용#

GitLab CI/CD 변수는 파이프라인의 잡에 구성 설정 및 비밀번호나 API 키 같은 민감한 정보를 저장하고 전달하는 데 사용하는 키-값 쌍입니다.

GitLab CI/CD 표현식을 사용하면 파이프라인 구성에 데이터를 동적으로 삽입할 수 있습니다. 사용 가능한 데이터는 표현식 컨텍스트에 따라 달라집니다. 예를 들어 inputs 컨텍스트를 사용하면 상위 파일 또는 파이프라인 실행 시 구성 파일로 전달된 정보에 액세스할 수 있습니다.

CI/CD 변수#

CI/CD 변수를 사용하면 다른 곳에서 정의된 값을 잡에서 액세스할 수 있게 하여 잡을 사용자 정의합니다. .gitlab-ci.yml 파일에 CI/CD 변수를 하드코딩하거나 프로젝트 설정에서 설정하거나 동적으로 생성할 수 있습니다. 프로젝트, 그룹, 또는 인스턴스에 대해 정의할 수 있습니다.

다음 유형의 변수를 사용할 수 있습니다:

  • 사용자 정의 변수: UI, API, 또는 구성 파일에서 만들고 관리하는 변수.
  • 사전 정의 변수: GitLab이 현재 잡, 파이프라인, 환경에 대한 정보를 제공하기 위해 자동으로 설정하는 변수.

보안 설정으로 변수를 구성할 수 있습니다:

  • 보호된 변수: 보호된 브랜치나 태그에서 실행되는 잡에 대한 액세스를 제한합니다.
  • 마스크된 변수: 잡 로그에서 변수 값을 숨겨 민감한 정보가 노출되지 않도록 합니다.

자세한 내용은 다음을 참조하세요:

CI/CD 표현식#

CI/CD 표현식은 $[[ ]] 구문을 사용하며 파이프라인을 만들 때 유효성이 검사됩니다. 변경 사항을 커밋하기 전에 파이프라인 편집기에서 표현식의 유효성을 검사할 수도 있습니다.

표현식은 다양한 컨텍스트를 기반으로 동적 구성을 가능하게 합니다:

  • Inputs 컨텍스트 ($[[ inputs.INPUT_NAME ]]): include:inputs를 사용하거나 새 파이프라인이 실행될 때 구성 파일로 전달된 타입이 지정된 매개변수에 액세스
  • Matrix 컨텍스트 ($[[ matrix.IDENTIFIER ]]): 매트릭스 잡 간의 1:1 매핑을 생성하기 위해 잡 의존성에서 매트릭스 값에 액세스

자세한 내용은 다음을 참조하세요:

4단계: CI/CD 컴포넌트 사용#

CI/CD 컴포넌트는 재사용 가능한 파이프라인 구성 단위입니다. CI/CD 컴포넌트를 사용하여 전체 파이프라인 구성 또는 더 큰 파이프라인의 일부를 구성합니다.

include:component로 파이프라인 구성에 컴포넌트를 추가할 수 있습니다.

재사용 가능한 컴포넌트는 중복을 줄이고 유지 관리성을 향상시키며 프로젝트 전반에 걸쳐 일관성을 촉진하는 데 도움이 됩니다. 컴포넌트 프로젝트를 만들고 CI/CD 카탈로그에 게시하여 여러 프로젝트에서 컴포넌트를 공유하세요.

GitLab에는 일반적인 작업 및 통합을 위한 CI/CD 컴포넌트 템플릿도 있습니다.

자세한 내용은 다음을 참조하세요: