InfoGrab DocsInfoGrab Docs

CI/CD 파이프라인

요약

CI/CD 파이프라인은 GitLab CI/CD의 기본 구성 요소입니다. 파이프라인은 브랜치에 푸시하거나, 머지 리퀘스트를 생성하거나, 일정에 따라 특정 이벤트에 대해 자동으로 실행될 수 있습니다. 프로젝트 파이프라인의 전반적인 동작을 제어하는 전역 YAML 키워드.

CI/CD 파이프라인은 GitLab CI/CD의 기본 구성 요소입니다. 파이프라인은 YAML 키워드를 사용하여 .gitlab-ci.yml 파일에 구성됩니다.

파이프라인은 브랜치에 푸시하거나, 머지 리퀘스트를 생성하거나, 일정에 따라 특정 이벤트에 대해 자동으로 실행될 수 있습니다. 필요한 경우 파이프라인을 수동으로 실행할 수도 있습니다.

파이프라인은 다음으로 구성됩니다:

  • 프로젝트 파이프라인의 전반적인 동작을 제어하는 전역 YAML 키워드.

  • 작업을 수행하기 위해 명령을 실행하는 job. 예를 들어, job은 코드를 컴파일, 테스트 또는 배포할 수 있습니다. job은 서로 독립적으로 실행되며 러너에 의해 실행됩니다.

  • Stage. job을 함께 그룹화하는 방법을 정의합니다. Stage는 순서대로 실행되고, Stage 내의 job은 병렬로 실행됩니다. 예를 들어, 초기 Stage에는 코드를 린트하고 컴파일하는 job이 있고, 이후 Stage에는 코드를 테스트하고 배포하는 job이 있을 수 있습니다. Stage의 모든 job이 성공하면 파이프라인은 다음 Stage로 이동합니다. Stage의 어느 job이라도 실패하면 다음 Stage는 (일반적으로) 실행되지 않고 파이프라인이 일찍 종료됩니다.

소규모 파이프라인은 다음 순서로 실행되는 세 가지 Stage로 구성될 수 있습니다:

  • compile이라는 job이 프로젝트 코드를 컴파일하는 build Stage.

  • 코드에 대한 다양한 테스트를 실행하는 test1test2 두 job이 있는 test Stage. 이 테스트는 compile job이 성공적으로 완료된 경우에만 실행됩니다.

  • deploy-to-production job이 있는 deploy Stage. 이 job은 test Stage의 두 job이 모두 시작되고 성공적으로 완료된 경우에만 실행됩니다.

첫 번째 파이프라인 시작에 대해서는 첫 번째 GitLab CI/CD 파이프라인 만들기 및 실행을 참조하세요.

파이프라인 유형#

파이프라인은 다양한 방식으로 구성할 수 있습니다:

  • 기본 파이프라인은 각 Stage의 모든 것을 동시에 실행한 후 다음 Stage를 실행합니다.

  • needs 키워드를 사용하는 파이프라인은 job 간의 의존성을 기반으로 실행되며 기본 파이프라인보다 더 빠르게 실행될 수 있습니다.

  • 머지 리퀘스트 파이프라인은 머지 리퀘스트에 대해서만 실행됩니다(모든 커밋이 아닌).

  • 병합된 결과 파이프라인은 소스 브랜치의 변경 사항이 이미 타깃 브랜치에 병합된 것처럼 동작하는 머지 리퀘스트 파이프라인입니다.

  • 머지 트레인은 병합된 결과 파이프라인을 사용하여 병합을 차례로 대기열에 넣습니다.

  • 워크로드 파이프라인은 임시 브랜치를 생성하지 않고 온디맨드 파이프라인 실행을 위해 임시 Git 참조에서 실행됩니다.

  • 부모-자식 파이프라인은 복잡한 파이프라인을 하나의 부모 파이프라인으로 분리하여 동일한 프로젝트와 동일한 SHA로 실행되는 여러 자식 하위 파이프라인을 트리거할 수 있습니다. 이 파이프라인 아키텍처는 모노레포에서 일반적으로 사용됩니다.

  • 다중 프로젝트 파이프라인은 서로 다른 프로젝트의 파이프라인을 결합합니다.

파이프라인 구성#

파이프라인과 구성 요소인 job 및 Stage는 각 프로젝트의 CI/CD 파이프라인 구성 파일에서 YAML 키워드로 정의됩니다. GitLab에서 CI/CD 구성을 편집할 때는 파이프라인 편집기를 사용해야 합니다.

GitLab UI를 통해 파이프라인의 특정 측면도 구성할 수 있습니다:

VS Code를 사용하여 GitLab CI/CD 구성을 편집하는 경우, GitLab for VS Code 확장을 사용하여 구성을 유효성 검사하고 파이프라인 상태를 확인할 수 있습니다.

파이프라인 수동 실행#

히스토리
  • GitLab 17.7에서 Run pipeline 이름이 New pipeline으로 변경됨.
  • GitLab 17.11에서 ci_inputs_for_pipelines라는 플래그와 함께 입력값 옵션이 도입됨. 기본적으로 활성화됨.

  • GitLab 18.1에서 입력값 옵션이 일반 공개됨. 기능 플래그 ci_inputs_for_pipelines 제거됨.

파이프라인은 사전 정의되거나 수동으로 지정된 변수로 수동으로 실행할 수 있습니다.

파이프라인의 결과(예: 코드 빌드)가 파이프라인의 표준 작동 외부에서 필요한 경우에 이 작업을 수행할 수 있습니다.

파이프라인을 수동으로 실행하려면:

  • 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  • 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.

  • New pipeline을 선택합니다.

  • Run for branch name or tag 필드에서 파이프라인을 실행할 브랜치나 태그를 선택합니다.

  • 선택 사항. 다음을 입력합니다:

    파이프라인을 실행하는 데 필요한 입력값. 입력값의 기본값이 미리 채워지지만 수정할 수 있습니다. 입력값은 예상된 유형을 따라야 합니다.

  • New pipeline을 선택합니다.

이제 파이프라인이 구성된 대로 job을 실행합니다.

수동 파이프라인 변수 보기#

히스토리
  • GitLab 17.2에서 ci_show_manual_variables_in_pipeline이라는 플래그와 함께 도입됨. 기본적으로 비활성화됨.
  • GitLab 18.4에서 프로젝트 설정과 함께 일반 공개됨. 기능 플래그 ci_show_manual_variables_in_pipeline 제거됨.

파이프라인이 수동으로 실행될 때 지정된 모든 변수를 볼 수 있습니다.

사전 조건:

  • 프로젝트에 대한 Owner 권한이 있어야 합니다.

필요한 권한은 수행할 작업에 따라 다릅니다:

작업 최소 권한
변수 이름 보기 Guest
변수 값 보기 Developer
가시성 설정 구성 Owner

이 설정을 활성화하면 Developer 권한이 있는 사용자가 수동 파이프라인 실행에서 민감한 정보가 포함될 수 있는 변수 값을 볼 수 있습니다. 자격 증명이나 토큰과 같은 민감한 데이터의 경우, 수동 파이프라인 변수 대신 보호된 변수 또는 외부 시크릿 관리를 사용하세요.

수동 파이프라인 변수를 보려면:

  • 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  • 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.

  • Display pipeline variables를 선택합니다.

  • Build > Pipelines로 이동하여 수동으로 실행된 파이프라인을 선택합니다.

  • Manual Variables 탭을 선택합니다.

변수 값은 기본적으로 마스킹됩니다. Developer, Maintainer, 또는 Owner 권한이 있으면 눈 아이콘을 선택하여 값을 표시할 수 있습니다.

수동 파이프라인에서 변수 미리 채우기#

히스토리
  • GitLab 17.11에서 Run pipeline 페이지의 Markdown 렌더링이 도입됨.

descriptionvalue 키워드를 사용하여 파이프라인을 수동으로 실행할 때 미리 채워지는 파이프라인 수준(전역) 변수를 정의할 수 있습니다. 설명을 사용하여 변수의 용도와 허용 가능한 값 등의 정보를 설명합니다. 설명에서 Markdown을 사용할 수 있습니다.

job 수준 변수는 미리 채울 수 없습니다.

수동으로 트리거된 파이프라인에서 New pipeline 페이지에는 .gitlab-ci.yml 파일에 description이 정의된 모든 파이프라인 수준 변수가 표시됩니다. 설명이 변수 아래에 표시됩니다.

미리 채워진 값을 변경할 수 있으며, 이는 해당 단일 파이프라인 실행에 대해 값을 재정의합니다. 이 프로세스를 사용하여 재정의된 변수는 확장되며 마스킹되지 않습니다. 구성 파일에서 변수에 대한 value를 정의하지 않으면 변수 이름은 여전히 나열되지만 값 필드는 비어 있습니다.

예를 들면:

variables:
  DEPLOY_CREDENTIALS:
    description: "The deployment credentials."
  DEPLOY_ENVIRONMENT:
    description: "Select the deployment target. Valid options are: 'canary', 'staging', 'production', or a stable branch of your choice."
    value: "canary"

이 예시에서:

  • DEPLOY_CREDENTIALSNew pipeline 페이지에 나열되지만 값이 설정되지 않습니다. 파이프라인을 수동으로 실행할 때마다 사용자가 값을 정의해야 합니다.

  • DEPLOY_ENVIRONMENTNew pipeline 페이지에서 canary를 기본값으로 미리 채워지며, 메시지에 다른 옵션이 설명됩니다.

알려진 문제로 인해 컴플라이언스 파이프라인을 사용하는 프로젝트에서 파이프라인을 수동으로 실행할 때 미리 채워진 변수가 표시되지 않을 수 있습니다. 이 문제를 해결하려면 컴플라이언스 파이프라인 구성을 변경하세요.

선택 가능한 미리 채워진 변수 값 목록 구성#

파이프라인을 수동으로 실행할 때 사용자가 선택할 수 있는 CI/CD 변수 값의 배열을 정의할 수 있습니다. 이러한 값은 New pipeline 페이지의 드롭다운 목록에 있습니다. options에 값 옵션 목록을 추가하고 value로 기본값을 설정합니다. value의 문자열은 options 목록에도 포함되어야 합니다.

예를 들면:

variables:
  DEPLOY_ENVIRONMENT:
    value: "staging"
    options:
      - "production"
      - "staging"
      - "canary"
    description: "The deployment target. Set to 'staging' by default."

URL 쿼리 문자열을 사용하여 파이프라인 실행#

쿼리 문자열을 사용하여 New pipeline 페이지를 미리 채울 수 있습니다. 예를 들어, 쿼리 문자열 .../pipelines/new?ref=my_branch&var[foo]=bar&file_var[file_foo]=file_bar는 다음으로 New pipeline 페이지를 미리 채웁니다:

  • Run for 필드: my_branch.

  • Variables 섹션:

    변수:

    키: foo

    • 값: bar

    • 파일:

      키: file_foo

    • 값: file_bar

pipelines/new URL의 형식은 다음과 같습니다:

.../pipelines/new?ref=<branch>&var[<variable_key>]=<value>&file_var[<file_key>]=<value>

다음 파라미터가 지원됩니다:

  • ref: Run for 필드를 채울 브랜치를 지정합니다.

  • var: Variable 변수를 지정합니다.

  • file_var: File 변수를 지정합니다.

var 또는 file_var에 대해 키와 값이 필요합니다.

파이프라인에 수동 상호 작용 추가#

수동 job을 사용하면 파이프라인에서 계속 진행하기 전에 수동 상호 작용을 요구할 수 있습니다.

파이프라인 그래프에서 직접 이 작업을 수행할 수 있습니다. Run(play)을 선택하여 특정 job을 실행합니다.

예를 들어, 파이프라인을 자동으로 시작할 수 있지만 프로덕션에 배포하기 위해 수동 작업을 요구할 수 있습니다. 다음 예시에서 production Stage에는 수동 작업이 있는 job이 있습니다:

[

](/19.2/ci/pipelines/img/manual_job_v17_9.png)

Stage의 모든 수동 job 시작#

Stage에 수동 job만 포함되어 있는 경우, Stage 위에 있는 Run all manual(play)을 선택하여 모든 job을 동시에 시작할 수 있습니다. Stage에 수동이 아닌 job이 포함된 경우 이 옵션이 표시되지 않습니다.

파이프라인 건너뛰기#

파이프라인을 트리거하지 않고 커밋을 푸시하려면 커밋 메시지에 대소문자를 구분하지 않고 [ci skip] 또는 [skip ci]를 추가합니다.

또는 Git 2.10 이상에서 ci.skip Git 푸시 옵션을 사용합니다. ci.skip 푸시 옵션은 머지 리퀘스트 파이프라인을 건너뛰지 않습니다.

파이프라인을 건너뛰면:

  • job이나 Stage가 없는 빈 파이프라인이 GitLab에 생성됩니다. 파이프라인이 UI에 표시되고 API 응답에서 반환될 수 있습니다.

  • 파이프라인 상태는 UI에서 Skipped이고 API에서 skipped입니다.

파이프라인 실행 정책 및 스캔 실행 정책은 [skip ci] 지시문을 제한하거나 비활성화할 수 있습니다. 자세한 내용은 다음을 참조하세요:

파이프라인 삭제#

프로젝트에 대한 Owner 권한을 가진 사용자가 파이프라인을 삭제할 수 있습니다:

  • 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  • 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.

  • 삭제할 파이프라인의 파이프라인 ID(예: #123456789) 또는 파이프라인 상태 아이콘 (예: Passed)을 선택합니다.

  • 파이프라인 세부 정보 페이지의 오른쪽 상단에서 Delete를 선택합니다.

파이프라인을 삭제해도 해당 자식 파이프라인이 자동으로 삭제되지는 않습니다. 자세한 내용은 이슈 39503을 참조하세요.

파이프라인을 삭제하면 모든 파이프라인 캐시가 만료되고, job, 로그, 아티팩트, 트리거 등 즉시 관련된 모든 객체가 삭제됩니다. 이 작업은 취소할 수 없습니다.

보호된 브랜치의 파이프라인 보안#

보호된 브랜치에서 파이프라인이 실행될 때 엄격한 보안 모델이 적용됩니다.

사용자가 특정 브랜치에 병합하거나 푸시할 수 있는 권한이 있는 경우 보호된 브랜치에서 다음 작업이 허용됩니다:

  • 수동 파이프라인 실행(웹 UI 또는 파이프라인 API 사용).

  • 예약된 파이프라인 실행.

  • 트리거 토큰을 사용하여 파이프라인 실행.

  • 온디맨드 DAST 스캔 실행.

  • 기존 파이프라인에서 수동 job 실행.

  • 기존 job 재시도 또는 취소(웹 UI 또는 파이프라인 API 사용).

보호된 것으로 표시된 변수는 보호된 브랜치의 파이프라인에서 실행되는 job에서 접근할 수 있습니다. 배포 자격 증명 및 토큰과 같은 민감한 정보에 접근 권한이 있는 사용자에게만 보호된 브랜치로 병합하는 권한을 부여하세요.

보호된 것으로 표시된 러너는 보호된 브랜치에서만 job을 실행할 수 있으며, 신뢰할 수 없는 코드가 보호된 러너에서 실행되는 것을 방지하고 배포 키 및 기타 자격 증명이 의도치 않게 접근되는 것을 방지합니다. 보호된 러너에서 실행되도록 의도된 job이 일반 러너를 사용하지 않도록 하려면 태그를 적절히 지정해야 합니다.

머지 리퀘스트 파이프라인의 맥락에서 보호된 변수 및 러너에 대한 접근 방식을 검토하세요.

파이프라인 보안을 위한 추가 보안 권장 사항은 배포 안전 페이지를 검토하세요.

업스트림 프로젝트가 재빌드될 때 파이프라인 트리거#

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

다른 프로젝트의 태그를 기반으로 파이프라인을 자동으로 트리거하도록 프로젝트를 설정할 수 있습니다. 구독된 프로젝트에서 새 태그 파이프라인이 완료되면 태그 파이프라인의 성공, 실패, 취소에 관계없이 프로젝트의 기본 브랜치에서 파이프라인이 트리거됩니다.

대안으로, 파이프라인 트리거 토큰이 있는 CI/CD job을 사용하여 다른 파이프라인이 실행될 때 파이프라인을 트리거할 수 있습니다. 이 방법은 파이프라인 구독보다 더 안정적이고 유연하며 권장되는 접근 방식입니다.

사전 조건:

  • 업스트림 프로젝트는 공개여야 합니다.

  • 사용자는 업스트림 프로젝트에서 Developer 권한이 있어야 합니다.

업스트림 프로젝트가 재빌드될 때 파이프라인을 트리거하려면:

  • 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  • 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.

  • Pipeline subscriptions을 확장합니다.

  • Add project를 선택합니다.

  • 구독할 프로젝트를 <namespace>/<project> 형식으로 입력합니다. 예를 들어, 프로젝트가 https://gitlab.com/gitlab-org/gitlab이면 gitlab-org/gitlab을 사용합니다.

  • Subscribe를 선택합니다.

업스트림 파이프라인 구독의 최대 수는 업스트림 및 다운스트림 프로젝트 모두에서 기본적으로 2개입니다. GitLab Self-Managed에서 관리자는 이 제한을 변경할 수 있습니다.

파이프라인 지속 시간 계산 방법#

주어진 파이프라인의 총 실행 시간에서 다음이 제외됩니다:

  • 재시도되거나 수동으로 재실행된 job의 초기 실행 지속 시간.

  • 대기(큐) 시간.

즉, job이 재시도되거나 수동으로 재실행되면 최신 실행의 지속 시간만 총 실행 시간에 포함됩니다.

각 job은 다음으로 구성된 Period로 표현됩니다:

  • Period#first (job이 시작된 시점).

  • Period#last (job이 완료된 시점).

간단한 예시:

  • A (0, 2)

  • A' (2, 4)

이것은 A를 재시도하는 것입니다

  • B (1, 3)

  • C (6, 7)

이 예시에서:

  • A는 0에서 시작하여 2에서 끝납니다.

  • A'는 2에서 시작하여 4에서 끝납니다.

  • B는 1에서 시작하여 3에서 끝납니다.

  • C는 6에서 시작하여 7에서 끝납니다.

시각적으로 표현하면:

0  1  2  3  4  5  6  7
AAAAAAA
   BBBBBBB
      A'A'A'A
                  CCCC

A가 재시도되므로 무시되고 job A'만 계산됩니다. B, A', C의 합집합은 (1, 4)와 (6, 7)입니다. 따라서 총 실행 시간은:

(4 - 1) + (7 - 6) => 4

파이프라인 보기#

프로젝트에 대해 실행된 모든 파이프라인을 보려면:

  • 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  • 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.

Pipelines 페이지를 다음으로 필터링할 수 있습니다:

  • 트리거 작성자

  • 브랜치 이름

  • 상태

  • 태그

  • 소스

오른쪽 상단의 드롭다운 목록에서 Pipeline ID를 선택하여 파이프라인 ID(인스턴스 전반에서 고유한 ID)를 표시합니다. pipeline IID를 선택하면 파이프라인 IID(내부 ID, 프로젝트 내에서만 고유함)가 표시됩니다.

특정 머지 리퀘스트와 관련된 파이프라인을 보려면 머지 리퀘스트의 Pipelines 탭으로 이동합니다.

파이프라인 세부 정보#

파이프라인을 선택하면 파이프라인의 모든 job이 표시되는 파이프라인 세부 정보 페이지가 열립니다. 이 페이지에서 실행 중인 파이프라인을 취소하거나, 실패한 job을 재시도하거나, 파이프라인을 삭제할 수 있습니다.

파이프라인 세부 정보 페이지에는 파이프라인의 모든 job 그래프가 표시됩니다:

[

](/19.2/ci/pipelines/img/pipeline_details_v17_9.png)

표준 URL을 사용하여 특정 파이프라인의 세부 정보에 접근할 수 있습니다:

  • gitlab.example.com/my-group/my-project/-/pipelines/latest: 프로젝트의 기본 브랜치에서 가장 최근 커밋에 대한 최신 파이프라인 세부 정보 페이지.

  • gitlab.example.com/my-group/my-project/-/pipelines/<branch>/latest: 프로젝트의 <branch> 브랜치에서 가장 최근 커밋에 대한 최신 파이프라인 세부 정보 페이지.

Stage 또는 needs 구성별 job 그룹화#

needs 키워드로 job을 구성할 때, 파이프라인 세부 정보 페이지에서 job을 그룹화하는 두 가지 옵션이 있습니다. job을 Stage 구성별로 그룹화하려면 Group jobs by 섹션에서 stage를 선택합니다:

[

](/19.2/ci/pipelines/img/pipeline_stage_view_v17_9.png)

job을 needs 구성별로 그룹화하려면 Job dependencies를 선택합니다. 선택적으로 Show dependencies를 선택하여 의존하는 job 사이에 선을 렌더링할 수 있습니다.

[

](/19.2/ci/pipelines/img/pipeline_dependency_view_v17_9.png)

가장 왼쪽 열의 job이 먼저 실행되고, 해당 job에 의존하는 job이 다음 열에 그룹화됩니다. 이 예시에서:

  • lint-jobneeds: []로 구성되어 job에 의존하지 않으므로 test Stage에 있음에도 불구하고 첫 번째 열에 표시됩니다.

  • test-job1build-job1에 의존하고, test-job2build-job1build-job2 모두에 의존하므로, 두 테스트 job 모두 두 번째 열에 표시됩니다.

  • deploy job 모두 두 번째 열의 job에 의존하므로(해당 job 자체가 더 이전 job에 의존함), 배포 job은 세 번째 열에 표시됩니다.

Job dependencies 보기에서 job 위에 마우스를 올리면 선택한 job 이전에 실행되어야 하는 모든 job이 강조 표시됩니다:

[

](/19.2/ci/pipelines/img/pipeline_dependency_view_on_hover_v17_9.png)

파이프라인 미니 그래프#

파이프라인 미니 그래프는 공간을 덜 차지하며 모든 job이 통과했는지 또는 실패한 항목이 있는지 한 눈에 확인할 수 있습니다. 단일 커밋의 모든 관련 job과 파이프라인의 각 Stage에 대한 순 결과를 표시합니다. 실패한 항목을 빠르게 확인하고 수정할 수 있습니다.

파이프라인 미니 그래프는 항상 job을 Stage별로 그룹화하며, 파이프라인이나 커밋 세부 정보를 표시할 때 GitLab 전체에 표시됩니다.

[

](/19.2/ci/pipelines/img/pipeline_mini_graph_v16_11.png)

파이프라인 미니 그래프의 Stage는 확장 가능합니다. 각 Stage 위에 마우스를 올려 이름과 상태를 확인하고, Stage를 선택하여 job 목록을 확장합니다.

다운스트림 파이프라인 그래프#

파이프라인에 다운스트림 파이프라인을 트리거하는 job이 포함된 경우, 파이프라인 세부 보기와 미니 그래프에서 다운스트림 파이프라인을 볼 수 있습니다.

파이프라인 세부 보기에서 파이프라인 그래프의 오른쪽에 트리거된 각 다운스트림 파이프라인에 대한 카드가 표시됩니다. 카드 위에 마우스를 올리면 다운스트림 파이프라인을 트리거한 job을 확인할 수 있습니다. 카드를 선택하면 파이프라인 그래프 오른쪽에 다운스트림 파이프라인이 표시됩니다.

파이프라인 미니 그래프에서 트리거된 각 다운스트림 파이프라인의 상태가 미니 그래프 오른쪽에 추가 상태 아이콘으로 표시됩니다. 다운스트림 파이프라인 상태 아이콘을 선택하면 해당 다운스트림 파이프라인의 세부 정보 페이지로 이동합니다.

파이프라인 성공 및 지속 시간 차트#

파이프라인 분석은 CI/CD Analytics 페이지에서 확인할 수 있습니다.

파이프라인 배지#

파이프라인 상태 및 테스트 커버리지 보고서 배지는 각 프로젝트에 사용 가능하며 구성할 수 있습니다. 프로젝트에 파이프라인 배지를 추가하는 방법은 파이프라인 배지를 참조하세요.

파이프라인 API#

GitLab은 다음을 위한 API 엔드포인트를 제공합니다:

러너를 위한 Ref 스펙#

러너가 파이프라인 job을 가져올 때, GitLab은 해당 job의 메타데이터를 제공합니다. 여기에는 프로젝트 저장소에서 어떤 ref(브랜치나 태그 등)와 커밋(SHA1)이 체크아웃되는지를 나타내는 Git ref 스펙이 포함됩니다.

이 표는 각 파이프라인 유형에 삽입되는 ref 스펙을 나열합니다:

파이프라인 유형 Ref 스펙
브랜치 파이프라인 +:refs/pipelines/ 및 +refs/heads/:refs/remotes/origin/
태그 파이프라인 +:refs/pipelines/ 및 +refs/tags/:refs/tags/
머지 리퀘스트 파이프라인 +refs/pipelines/:refs/pipelines/
워크로드 ref용 파이프라인 +refs/pipelines/:refs/pipelines/

refs refs/heads/<name>refs/tags/<name>은 프로젝트 저장소에 존재합니다. GitLab은 실행 중인 파이프라인 job 중에 특수 ref refs/pipelines/<id>를 생성합니다. 이 ref는 연관된 브랜치나 태그가 삭제된 후에도 생성될 수 있습니다. 따라서 환경 자동 중지 및 브랜치 삭제 후 파이프라인을 실행할 수 있는 머지 트레인과 같은 일부 기능에서 유용합니다.

문제 해결#

사용자 삭제 후 파이프라인 구독이 계속됨#

사용자가 GitLab.com 계정을 삭제할 때 삭제는 7일 동안 이루어지지 않습니다. 이 기간 동안 해당 사용자가 만든 파이프라인 구독은 사용자의 원래 권한으로 계속 실행됩니다. 무단 파이프라인 실행을 방지하려면 삭제된 사용자의 파이프라인 구독 설정을 즉시 업데이트하세요.

미리 채워진 변수가 New Pipeline 페이지에 표시되지 않음#

파이프라인의 미리 정의된 변수가 별도 파일에 정의된 경우, New Pipeline 페이지에 표시되지 않을 수 있습니다. 별도 파일에 접근 권한이 있어야 하며, 그렇지 않으면 미리 정의된 변수가 표시될 수 없습니다.

CI/CD 파이프라인

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

CI/CD 파이프라인은 GitLab CI/CD의 기본 구성 요소입니다. 파이프라인은 브랜치에 푸시하거나, 머지 리퀘스트를 생성하거나, 일정에 따라 특정 이벤트에 대해 자동으로 실행될 수 있습니다. 프로젝트 파이프라인의 전반적인 동작을 제어하는 전역 YAML 키워드.

CI/CD 파이프라인은 GitLab CI/CD의 기본 구성 요소입니다. 파이프라인은 YAML 키워드를 사용하여 .gitlab-ci.yml 파일에 구성됩니다.

파이프라인은 브랜치에 푸시하거나, 머지 리퀘스트를 생성하거나, 일정에 따라 특정 이벤트에 대해 자동으로 실행될 수 있습니다. 필요한 경우 파이프라인을 수동으로 실행할 수도 있습니다.

파이프라인은 다음으로 구성됩니다:

  • 프로젝트 파이프라인의 전반적인 동작을 제어하는 전역 YAML 키워드.

  • 작업을 수행하기 위해 명령을 실행하는 job. 예를 들어, job은 코드를 컴파일, 테스트 또는 배포할 수 있습니다. job은 서로 독립적으로 실행되며 러너에 의해 실행됩니다.

  • Stage. job을 함께 그룹화하는 방법을 정의합니다. Stage는 순서대로 실행되고, Stage 내의 job은 병렬로 실행됩니다. 예를 들어, 초기 Stage에는 코드를 린트하고 컴파일하는 job이 있고, 이후 Stage에는 코드를 테스트하고 배포하는 job이 있을 수 있습니다. Stage의 모든 job이 성공하면 파이프라인은 다음 Stage로 이동합니다. Stage의 어느 job이라도 실패하면 다음 Stage는 (일반적으로) 실행되지 않고 파이프라인이 일찍 종료됩니다.

소규모 파이프라인은 다음 순서로 실행되는 세 가지 Stage로 구성될 수 있습니다:

  • compile이라는 job이 프로젝트 코드를 컴파일하는 build Stage.

  • 코드에 대한 다양한 테스트를 실행하는 test1test2 두 job이 있는 test Stage. 이 테스트는 compile job이 성공적으로 완료된 경우에만 실행됩니다.

  • deploy-to-production job이 있는 deploy Stage. 이 job은 test Stage의 두 job이 모두 시작되고 성공적으로 완료된 경우에만 실행됩니다.

첫 번째 파이프라인 시작에 대해서는 첫 번째 GitLab CI/CD 파이프라인 만들기 및 실행을 참조하세요.

파이프라인 유형#

파이프라인은 다양한 방식으로 구성할 수 있습니다:

  • 기본 파이프라인은 각 Stage의 모든 것을 동시에 실행한 후 다음 Stage를 실행합니다.

  • needs 키워드를 사용하는 파이프라인은 job 간의 의존성을 기반으로 실행되며 기본 파이프라인보다 더 빠르게 실행될 수 있습니다.

  • 머지 리퀘스트 파이프라인은 머지 리퀘스트에 대해서만 실행됩니다(모든 커밋이 아닌).

  • 병합된 결과 파이프라인은 소스 브랜치의 변경 사항이 이미 타깃 브랜치에 병합된 것처럼 동작하는 머지 리퀘스트 파이프라인입니다.

  • 머지 트레인은 병합된 결과 파이프라인을 사용하여 병합을 차례로 대기열에 넣습니다.

  • 워크로드 파이프라인은 임시 브랜치를 생성하지 않고 온디맨드 파이프라인 실행을 위해 임시 Git 참조에서 실행됩니다.

  • 부모-자식 파이프라인은 복잡한 파이프라인을 하나의 부모 파이프라인으로 분리하여 동일한 프로젝트와 동일한 SHA로 실행되는 여러 자식 하위 파이프라인을 트리거할 수 있습니다. 이 파이프라인 아키텍처는 모노레포에서 일반적으로 사용됩니다.

  • 다중 프로젝트 파이프라인은 서로 다른 프로젝트의 파이프라인을 결합합니다.

파이프라인 구성#

파이프라인과 구성 요소인 job 및 Stage는 각 프로젝트의 CI/CD 파이프라인 구성 파일에서 YAML 키워드로 정의됩니다. GitLab에서 CI/CD 구성을 편집할 때는 파이프라인 편집기를 사용해야 합니다.

GitLab UI를 통해 파이프라인의 특정 측면도 구성할 수 있습니다:

VS Code를 사용하여 GitLab CI/CD 구성을 편집하는 경우, GitLab for VS Code 확장을 사용하여 구성을 유효성 검사하고 파이프라인 상태를 확인할 수 있습니다.

파이프라인 수동 실행#

히스토리
  • GitLab 17.7에서 Run pipeline 이름이 New pipeline으로 변경됨.
  • GitLab 17.11에서 ci_inputs_for_pipelines라는 플래그와 함께 입력값 옵션이 도입됨. 기본적으로 활성화됨.

  • GitLab 18.1에서 입력값 옵션이 일반 공개됨. 기능 플래그 ci_inputs_for_pipelines 제거됨.

파이프라인은 사전 정의되거나 수동으로 지정된 변수로 수동으로 실행할 수 있습니다.

파이프라인의 결과(예: 코드 빌드)가 파이프라인의 표준 작동 외부에서 필요한 경우에 이 작업을 수행할 수 있습니다.

파이프라인을 수동으로 실행하려면:

  • 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  • 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.

  • New pipeline을 선택합니다.

  • Run for branch name or tag 필드에서 파이프라인을 실행할 브랜치나 태그를 선택합니다.

  • 선택 사항. 다음을 입력합니다:

    파이프라인을 실행하는 데 필요한 입력값. 입력값의 기본값이 미리 채워지지만 수정할 수 있습니다. 입력값은 예상된 유형을 따라야 합니다.

  • New pipeline을 선택합니다.

이제 파이프라인이 구성된 대로 job을 실행합니다.

수동 파이프라인 변수 보기#

히스토리
  • GitLab 17.2에서 ci_show_manual_variables_in_pipeline이라는 플래그와 함께 도입됨. 기본적으로 비활성화됨.
  • GitLab 18.4에서 프로젝트 설정과 함께 일반 공개됨. 기능 플래그 ci_show_manual_variables_in_pipeline 제거됨.

파이프라인이 수동으로 실행될 때 지정된 모든 변수를 볼 수 있습니다.

사전 조건:

  • 프로젝트에 대한 Owner 권한이 있어야 합니다.

필요한 권한은 수행할 작업에 따라 다릅니다:

작업 최소 권한
변수 이름 보기 Guest
변수 값 보기 Developer
가시성 설정 구성 Owner

이 설정을 활성화하면 Developer 권한이 있는 사용자가 수동 파이프라인 실행에서 민감한 정보가 포함될 수 있는 변수 값을 볼 수 있습니다. 자격 증명이나 토큰과 같은 민감한 데이터의 경우, 수동 파이프라인 변수 대신 보호된 변수 또는 외부 시크릿 관리를 사용하세요.

수동 파이프라인 변수를 보려면:

  • 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  • 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.

  • Display pipeline variables를 선택합니다.

  • Build > Pipelines로 이동하여 수동으로 실행된 파이프라인을 선택합니다.

  • Manual Variables 탭을 선택합니다.

변수 값은 기본적으로 마스킹됩니다. Developer, Maintainer, 또는 Owner 권한이 있으면 눈 아이콘을 선택하여 값을 표시할 수 있습니다.

수동 파이프라인에서 변수 미리 채우기#

히스토리
  • GitLab 17.11에서 Run pipeline 페이지의 Markdown 렌더링이 도입됨.

descriptionvalue 키워드를 사용하여 파이프라인을 수동으로 실행할 때 미리 채워지는 파이프라인 수준(전역) 변수를 정의할 수 있습니다. 설명을 사용하여 변수의 용도와 허용 가능한 값 등의 정보를 설명합니다. 설명에서 Markdown을 사용할 수 있습니다.

job 수준 변수는 미리 채울 수 없습니다.

수동으로 트리거된 파이프라인에서 New pipeline 페이지에는 .gitlab-ci.yml 파일에 description이 정의된 모든 파이프라인 수준 변수가 표시됩니다. 설명이 변수 아래에 표시됩니다.

미리 채워진 값을 변경할 수 있으며, 이는 해당 단일 파이프라인 실행에 대해 값을 재정의합니다. 이 프로세스를 사용하여 재정의된 변수는 확장되며 마스킹되지 않습니다. 구성 파일에서 변수에 대한 value를 정의하지 않으면 변수 이름은 여전히 나열되지만 값 필드는 비어 있습니다.

예를 들면:

variables:
  DEPLOY_CREDENTIALS:
    description: "The deployment credentials."
  DEPLOY_ENVIRONMENT:
    description: "Select the deployment target. Valid options are: 'canary', 'staging', 'production', or a stable branch of your choice."
    value: "canary"

이 예시에서:

  • DEPLOY_CREDENTIALSNew pipeline 페이지에 나열되지만 값이 설정되지 않습니다. 파이프라인을 수동으로 실행할 때마다 사용자가 값을 정의해야 합니다.

  • DEPLOY_ENVIRONMENTNew pipeline 페이지에서 canary를 기본값으로 미리 채워지며, 메시지에 다른 옵션이 설명됩니다.

알려진 문제로 인해 컴플라이언스 파이프라인을 사용하는 프로젝트에서 파이프라인을 수동으로 실행할 때 미리 채워진 변수가 표시되지 않을 수 있습니다. 이 문제를 해결하려면 컴플라이언스 파이프라인 구성을 변경하세요.

선택 가능한 미리 채워진 변수 값 목록 구성#

파이프라인을 수동으로 실행할 때 사용자가 선택할 수 있는 CI/CD 변수 값의 배열을 정의할 수 있습니다. 이러한 값은 New pipeline 페이지의 드롭다운 목록에 있습니다. options에 값 옵션 목록을 추가하고 value로 기본값을 설정합니다. value의 문자열은 options 목록에도 포함되어야 합니다.

예를 들면:

variables:
  DEPLOY_ENVIRONMENT:
    value: "staging"
    options:
      - "production"
      - "staging"
      - "canary"
    description: "The deployment target. Set to 'staging' by default."

URL 쿼리 문자열을 사용하여 파이프라인 실행#

쿼리 문자열을 사용하여 New pipeline 페이지를 미리 채울 수 있습니다. 예를 들어, 쿼리 문자열 .../pipelines/new?ref=my_branch&var[foo]=bar&file_var[file_foo]=file_bar는 다음으로 New pipeline 페이지를 미리 채웁니다:

  • Run for 필드: my_branch.

  • Variables 섹션:

    변수:

    키: foo

    • 값: bar

    • 파일:

      키: file_foo

    • 값: file_bar

pipelines/new URL의 형식은 다음과 같습니다:

.../pipelines/new?ref=<branch>&var[<variable_key>]=<value>&file_var[<file_key>]=<value>

다음 파라미터가 지원됩니다:

  • ref: Run for 필드를 채울 브랜치를 지정합니다.

  • var: Variable 변수를 지정합니다.

  • file_var: File 변수를 지정합니다.

var 또는 file_var에 대해 키와 값이 필요합니다.

파이프라인에 수동 상호 작용 추가#

수동 job을 사용하면 파이프라인에서 계속 진행하기 전에 수동 상호 작용을 요구할 수 있습니다.

파이프라인 그래프에서 직접 이 작업을 수행할 수 있습니다. Run(play)을 선택하여 특정 job을 실행합니다.

예를 들어, 파이프라인을 자동으로 시작할 수 있지만 프로덕션에 배포하기 위해 수동 작업을 요구할 수 있습니다. 다음 예시에서 production Stage에는 수동 작업이 있는 job이 있습니다:

[

](/19.2/ci/pipelines/img/manual_job_v17_9.png)

Stage의 모든 수동 job 시작#

Stage에 수동 job만 포함되어 있는 경우, Stage 위에 있는 Run all manual(play)을 선택하여 모든 job을 동시에 시작할 수 있습니다. Stage에 수동이 아닌 job이 포함된 경우 이 옵션이 표시되지 않습니다.

파이프라인 건너뛰기#

파이프라인을 트리거하지 않고 커밋을 푸시하려면 커밋 메시지에 대소문자를 구분하지 않고 [ci skip] 또는 [skip ci]를 추가합니다.

또는 Git 2.10 이상에서 ci.skip Git 푸시 옵션을 사용합니다. ci.skip 푸시 옵션은 머지 리퀘스트 파이프라인을 건너뛰지 않습니다.

파이프라인을 건너뛰면:

  • job이나 Stage가 없는 빈 파이프라인이 GitLab에 생성됩니다. 파이프라인이 UI에 표시되고 API 응답에서 반환될 수 있습니다.

  • 파이프라인 상태는 UI에서 Skipped이고 API에서 skipped입니다.

파이프라인 실행 정책 및 스캔 실행 정책은 [skip ci] 지시문을 제한하거나 비활성화할 수 있습니다. 자세한 내용은 다음을 참조하세요:

파이프라인 삭제#

프로젝트에 대한 Owner 권한을 가진 사용자가 파이프라인을 삭제할 수 있습니다:

  • 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  • 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.

  • 삭제할 파이프라인의 파이프라인 ID(예: #123456789) 또는 파이프라인 상태 아이콘 (예: Passed)을 선택합니다.

  • 파이프라인 세부 정보 페이지의 오른쪽 상단에서 Delete를 선택합니다.

파이프라인을 삭제해도 해당 자식 파이프라인이 자동으로 삭제되지는 않습니다. 자세한 내용은 이슈 39503을 참조하세요.

파이프라인을 삭제하면 모든 파이프라인 캐시가 만료되고, job, 로그, 아티팩트, 트리거 등 즉시 관련된 모든 객체가 삭제됩니다. 이 작업은 취소할 수 없습니다.

보호된 브랜치의 파이프라인 보안#

보호된 브랜치에서 파이프라인이 실행될 때 엄격한 보안 모델이 적용됩니다.

사용자가 특정 브랜치에 병합하거나 푸시할 수 있는 권한이 있는 경우 보호된 브랜치에서 다음 작업이 허용됩니다:

  • 수동 파이프라인 실행(웹 UI 또는 파이프라인 API 사용).

  • 예약된 파이프라인 실행.

  • 트리거 토큰을 사용하여 파이프라인 실행.

  • 온디맨드 DAST 스캔 실행.

  • 기존 파이프라인에서 수동 job 실행.

  • 기존 job 재시도 또는 취소(웹 UI 또는 파이프라인 API 사용).

보호된 것으로 표시된 변수는 보호된 브랜치의 파이프라인에서 실행되는 job에서 접근할 수 있습니다. 배포 자격 증명 및 토큰과 같은 민감한 정보에 접근 권한이 있는 사용자에게만 보호된 브랜치로 병합하는 권한을 부여하세요.

보호된 것으로 표시된 러너는 보호된 브랜치에서만 job을 실행할 수 있으며, 신뢰할 수 없는 코드가 보호된 러너에서 실행되는 것을 방지하고 배포 키 및 기타 자격 증명이 의도치 않게 접근되는 것을 방지합니다. 보호된 러너에서 실행되도록 의도된 job이 일반 러너를 사용하지 않도록 하려면 태그를 적절히 지정해야 합니다.

머지 리퀘스트 파이프라인의 맥락에서 보호된 변수 및 러너에 대한 접근 방식을 검토하세요.

파이프라인 보안을 위한 추가 보안 권장 사항은 배포 안전 페이지를 검토하세요.

업스트림 프로젝트가 재빌드될 때 파이프라인 트리거#

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

다른 프로젝트의 태그를 기반으로 파이프라인을 자동으로 트리거하도록 프로젝트를 설정할 수 있습니다. 구독된 프로젝트에서 새 태그 파이프라인이 완료되면 태그 파이프라인의 성공, 실패, 취소에 관계없이 프로젝트의 기본 브랜치에서 파이프라인이 트리거됩니다.

대안으로, 파이프라인 트리거 토큰이 있는 CI/CD job을 사용하여 다른 파이프라인이 실행될 때 파이프라인을 트리거할 수 있습니다. 이 방법은 파이프라인 구독보다 더 안정적이고 유연하며 권장되는 접근 방식입니다.

사전 조건:

  • 업스트림 프로젝트는 공개여야 합니다.

  • 사용자는 업스트림 프로젝트에서 Developer 권한이 있어야 합니다.

업스트림 프로젝트가 재빌드될 때 파이프라인을 트리거하려면:

  • 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  • 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.

  • Pipeline subscriptions을 확장합니다.

  • Add project를 선택합니다.

  • 구독할 프로젝트를 <namespace>/<project> 형식으로 입력합니다. 예를 들어, 프로젝트가 https://gitlab.com/gitlab-org/gitlab이면 gitlab-org/gitlab을 사용합니다.

  • Subscribe를 선택합니다.

업스트림 파이프라인 구독의 최대 수는 업스트림 및 다운스트림 프로젝트 모두에서 기본적으로 2개입니다. GitLab Self-Managed에서 관리자는 이 제한을 변경할 수 있습니다.

파이프라인 지속 시간 계산 방법#

주어진 파이프라인의 총 실행 시간에서 다음이 제외됩니다:

  • 재시도되거나 수동으로 재실행된 job의 초기 실행 지속 시간.

  • 대기(큐) 시간.

즉, job이 재시도되거나 수동으로 재실행되면 최신 실행의 지속 시간만 총 실행 시간에 포함됩니다.

각 job은 다음으로 구성된 Period로 표현됩니다:

  • Period#first (job이 시작된 시점).

  • Period#last (job이 완료된 시점).

간단한 예시:

  • A (0, 2)

  • A' (2, 4)

이것은 A를 재시도하는 것입니다

  • B (1, 3)

  • C (6, 7)

이 예시에서:

  • A는 0에서 시작하여 2에서 끝납니다.

  • A'는 2에서 시작하여 4에서 끝납니다.

  • B는 1에서 시작하여 3에서 끝납니다.

  • C는 6에서 시작하여 7에서 끝납니다.

시각적으로 표현하면:

0  1  2  3  4  5  6  7
AAAAAAA
   BBBBBBB
      A'A'A'A
                  CCCC

A가 재시도되므로 무시되고 job A'만 계산됩니다. B, A', C의 합집합은 (1, 4)와 (6, 7)입니다. 따라서 총 실행 시간은:

(4 - 1) + (7 - 6) => 4

파이프라인 보기#

프로젝트에 대해 실행된 모든 파이프라인을 보려면:

  • 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  • 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.

Pipelines 페이지를 다음으로 필터링할 수 있습니다:

  • 트리거 작성자

  • 브랜치 이름

  • 상태

  • 태그

  • 소스

오른쪽 상단의 드롭다운 목록에서 Pipeline ID를 선택하여 파이프라인 ID(인스턴스 전반에서 고유한 ID)를 표시합니다. pipeline IID를 선택하면 파이프라인 IID(내부 ID, 프로젝트 내에서만 고유함)가 표시됩니다.

특정 머지 리퀘스트와 관련된 파이프라인을 보려면 머지 리퀘스트의 Pipelines 탭으로 이동합니다.

파이프라인 세부 정보#

파이프라인을 선택하면 파이프라인의 모든 job이 표시되는 파이프라인 세부 정보 페이지가 열립니다. 이 페이지에서 실행 중인 파이프라인을 취소하거나, 실패한 job을 재시도하거나, 파이프라인을 삭제할 수 있습니다.

파이프라인 세부 정보 페이지에는 파이프라인의 모든 job 그래프가 표시됩니다:

[

](/19.2/ci/pipelines/img/pipeline_details_v17_9.png)

표준 URL을 사용하여 특정 파이프라인의 세부 정보에 접근할 수 있습니다:

  • gitlab.example.com/my-group/my-project/-/pipelines/latest: 프로젝트의 기본 브랜치에서 가장 최근 커밋에 대한 최신 파이프라인 세부 정보 페이지.

  • gitlab.example.com/my-group/my-project/-/pipelines/<branch>/latest: 프로젝트의 <branch> 브랜치에서 가장 최근 커밋에 대한 최신 파이프라인 세부 정보 페이지.

Stage 또는 needs 구성별 job 그룹화#

needs 키워드로 job을 구성할 때, 파이프라인 세부 정보 페이지에서 job을 그룹화하는 두 가지 옵션이 있습니다. job을 Stage 구성별로 그룹화하려면 Group jobs by 섹션에서 stage를 선택합니다:

[

](/19.2/ci/pipelines/img/pipeline_stage_view_v17_9.png)

job을 needs 구성별로 그룹화하려면 Job dependencies를 선택합니다. 선택적으로 Show dependencies를 선택하여 의존하는 job 사이에 선을 렌더링할 수 있습니다.

[

](/19.2/ci/pipelines/img/pipeline_dependency_view_v17_9.png)

가장 왼쪽 열의 job이 먼저 실행되고, 해당 job에 의존하는 job이 다음 열에 그룹화됩니다. 이 예시에서:

  • lint-jobneeds: []로 구성되어 job에 의존하지 않으므로 test Stage에 있음에도 불구하고 첫 번째 열에 표시됩니다.

  • test-job1build-job1에 의존하고, test-job2build-job1build-job2 모두에 의존하므로, 두 테스트 job 모두 두 번째 열에 표시됩니다.

  • deploy job 모두 두 번째 열의 job에 의존하므로(해당 job 자체가 더 이전 job에 의존함), 배포 job은 세 번째 열에 표시됩니다.

Job dependencies 보기에서 job 위에 마우스를 올리면 선택한 job 이전에 실행되어야 하는 모든 job이 강조 표시됩니다:

[

](/19.2/ci/pipelines/img/pipeline_dependency_view_on_hover_v17_9.png)

파이프라인 미니 그래프#

파이프라인 미니 그래프는 공간을 덜 차지하며 모든 job이 통과했는지 또는 실패한 항목이 있는지 한 눈에 확인할 수 있습니다. 단일 커밋의 모든 관련 job과 파이프라인의 각 Stage에 대한 순 결과를 표시합니다. 실패한 항목을 빠르게 확인하고 수정할 수 있습니다.

파이프라인 미니 그래프는 항상 job을 Stage별로 그룹화하며, 파이프라인이나 커밋 세부 정보를 표시할 때 GitLab 전체에 표시됩니다.

[

](/19.2/ci/pipelines/img/pipeline_mini_graph_v16_11.png)

파이프라인 미니 그래프의 Stage는 확장 가능합니다. 각 Stage 위에 마우스를 올려 이름과 상태를 확인하고, Stage를 선택하여 job 목록을 확장합니다.

다운스트림 파이프라인 그래프#

파이프라인에 다운스트림 파이프라인을 트리거하는 job이 포함된 경우, 파이프라인 세부 보기와 미니 그래프에서 다운스트림 파이프라인을 볼 수 있습니다.

파이프라인 세부 보기에서 파이프라인 그래프의 오른쪽에 트리거된 각 다운스트림 파이프라인에 대한 카드가 표시됩니다. 카드 위에 마우스를 올리면 다운스트림 파이프라인을 트리거한 job을 확인할 수 있습니다. 카드를 선택하면 파이프라인 그래프 오른쪽에 다운스트림 파이프라인이 표시됩니다.

파이프라인 미니 그래프에서 트리거된 각 다운스트림 파이프라인의 상태가 미니 그래프 오른쪽에 추가 상태 아이콘으로 표시됩니다. 다운스트림 파이프라인 상태 아이콘을 선택하면 해당 다운스트림 파이프라인의 세부 정보 페이지로 이동합니다.

파이프라인 성공 및 지속 시간 차트#

파이프라인 분석은 CI/CD Analytics 페이지에서 확인할 수 있습니다.

파이프라인 배지#

파이프라인 상태 및 테스트 커버리지 보고서 배지는 각 프로젝트에 사용 가능하며 구성할 수 있습니다. 프로젝트에 파이프라인 배지를 추가하는 방법은 파이프라인 배지를 참조하세요.

파이프라인 API#

GitLab은 다음을 위한 API 엔드포인트를 제공합니다:

러너를 위한 Ref 스펙#

러너가 파이프라인 job을 가져올 때, GitLab은 해당 job의 메타데이터를 제공합니다. 여기에는 프로젝트 저장소에서 어떤 ref(브랜치나 태그 등)와 커밋(SHA1)이 체크아웃되는지를 나타내는 Git ref 스펙이 포함됩니다.

이 표는 각 파이프라인 유형에 삽입되는 ref 스펙을 나열합니다:

파이프라인 유형 Ref 스펙
브랜치 파이프라인 +:refs/pipelines/ 및 +refs/heads/:refs/remotes/origin/
태그 파이프라인 +:refs/pipelines/ 및 +refs/tags/:refs/tags/
머지 리퀘스트 파이프라인 +refs/pipelines/:refs/pipelines/
워크로드 ref용 파이프라인 +refs/pipelines/:refs/pipelines/

refs refs/heads/<name>refs/tags/<name>은 프로젝트 저장소에 존재합니다. GitLab은 실행 중인 파이프라인 job 중에 특수 ref refs/pipelines/<id>를 생성합니다. 이 ref는 연관된 브랜치나 태그가 삭제된 후에도 생성될 수 있습니다. 따라서 환경 자동 중지 및 브랜치 삭제 후 파이프라인을 실행할 수 있는 머지 트레인과 같은 일부 기능에서 유용합니다.

문제 해결#

사용자 삭제 후 파이프라인 구독이 계속됨#

사용자가 GitLab.com 계정을 삭제할 때 삭제는 7일 동안 이루어지지 않습니다. 이 기간 동안 해당 사용자가 만든 파이프라인 구독은 사용자의 원래 권한으로 계속 실행됩니다. 무단 파이프라인 실행을 방지하려면 삭제된 사용자의 파이프라인 구독 설정을 즉시 업데이트하세요.

미리 채워진 변수가 New Pipeline 페이지에 표시되지 않음#

파이프라인의 미리 정의된 변수가 별도 파일에 정의된 경우, New Pipeline 페이지에 표시되지 않을 수 있습니다. 별도 파일에 접근 권한이 있어야 하며, 그렇지 않으면 미리 정의된 변수가 표시될 수 없습니다.