InfoGrab 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 파일로 시작합니다. 이 파일은 CI/CD 파이프라인 동안 실행될 스테이지, 잡, 스크립트를 지정합니다. 자체적인 사용자 정의 구문이 있는 YAML 파일입니다.

파일 이름은 반드시 .gitlab-ci.yml이어야 하며 대소문자를 구분하지만, 다른 파일 이름을 구성할 수도 있습니다.

이 파일에서 변수, 잡 간의 의존성을 정의하고 각 잡이 실행될 시기와 방법을 지정합니다.

파이프라인은 .gitlab-ci.yml 파일에 정의되며, 파일이 러너에서 실행될 때 실행됩니다.

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

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

파이프라인은 커밋이나 머지 같은 다양한 이벤트에 의해 트리거되거나 일정에 따라 실행될 수 있습니다. 파이프라인에서 다양한 도구 및 플랫폼과 통합할 수 있습니다.

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

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 시작하기

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 파일로 시작합니다. 이 파일은 CI/CD 파이프라인 동안 실행될 스테이지, 잡, 스크립트를 지정합니다. 자체적인 사용자 정의 구문이 있는 YAML 파일입니다.

파일 이름은 반드시 .gitlab-ci.yml이어야 하며 대소문자를 구분하지만, 다른 파일 이름을 구성할 수도 있습니다.

이 파일에서 변수, 잡 간의 의존성을 정의하고 각 잡이 실행될 시기와 방법을 지정합니다.

파이프라인은 .gitlab-ci.yml 파일에 정의되며, 파일이 러너에서 실행될 때 실행됩니다.

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

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

파이프라인은 커밋이나 머지 같은 다양한 이벤트에 의해 트리거되거나 일정에 따라 실행될 수 있습니다. 파이프라인에서 다양한 도구 및 플랫폼과 통합할 수 있습니다.

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

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 컴포넌트 템플릿도 있습니다.

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