파이프라인 구성 사용자 정의

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

프로젝트에 대한 파이프라인 실행 방식을 사용자 정의할 수 있습니다.


파이프라인에 대한 개요를 보려면 GitLab CI Pipeline, Artifacts, and Environments 비디오를 시청하세요.
또한 GitLab CI 파이프라인 초보자 튜토리얼을 시청하세요.

사용자가 파이프라인을 볼 수 있는 권한 변경

공용 및 내부 프로젝트의 경우 다음과 같이 파이프라인을 볼 수 있는 사용자를 변경할 수 있습니다:

파이프라인 및 관련 기능의 가시성을 변경하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. 공개 파이프라인 체크박스를 선택하거나 선택 해제합니다.
    선택된 경우, 파이프라인 및 관련 기능이 표시됩니다:

    • 공개 프로젝트의 경우, 모든 사용자에게.
    • 내부 프로젝트의 경우, 모든 인증된 사용자에게 (외부 사용자 제외).
    • 비공개 프로젝트의 경우, 모든 프로젝트 구성원에게 (게스트 이상).

    선택 해제된 경우:

    • 공개 프로젝트의 경우, 작업 로그, 작업 아티팩트, 파이프라인 보안 대시보드와 CI/CD 메뉴 항목은 프로젝트 구성원만 볼 수 있습니다 (보고서 작성자 이상).
      다른 사용자는 파이프라인과 작업의 상태만 볼 수 있으며, 이는 병합 요청 또는 커밋을 볼 때만 가능합니다.
    • 내부 프로젝트의 경우, 파이프라인은 모든 인증된 사용자에게 표시되며 (외부 사용자 제외). 관련 기능은 프로젝트 구성원만 볼 수 있습니다 (보고서 작성자 이상).
    • 비공개 프로젝트의 경우, 파이프라인 및 관련 기능은 프로젝트 구성원만 볼 수 있습니다 (보고서 작성자 이상).

공개 프로젝트에서 비프로젝트 구성원의 파이프라인 가시성 변경

공개 프로젝트에서 비프로젝트 구성원의 파이프라인 가시성을 제어할 수 있습니다.

이 설정은 다음과 같은 경우에 영향을 주지 않습니다:

  • 프로젝트 가시성이 내부 또는 비공개로 설정된 경우, 비프로젝트 구성원은 내부 또는 비공식 프로젝트에 접근할 수 없습니다.
  • 공개 파이프라인 설정이 비활성화된 경우.

비프로젝트 구성원에 대한 파이프라인 가시성을 변경하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 일반을 선택합니다.
  3. 가시성, 프로젝트 기능, 권한을 확장합니다.
  4. CI/CD에 대해 다음을 선택합니다:
    • 프로젝트 구성원만: 프로젝트 구성원만 파이프라인을 볼 수 있습니다.
    • 접근할 수 있는 모든 사용자: 비프로젝트 구성원도 파이프라인을 볼 수 있습니다.
  5. 변경 사항 저장을 선택합니다.

CI/CD 권한 테이블모든 접근 가능이 선택된 경우 비프로젝트 구성원이 접근할 수 있는 파이프라인 기능을 나열합니다.

중복 파이프라인 자동 취소

새로운 변경 사항에 대한 파이프라인이 동일한 브랜치에서 실행될 때, 보류 중이거나 실행 중인 파이프라인을 자동으로 취소하도록 설정할 수 있습니다. 이는 프로젝트 설정에서 활성화할 수 있습니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. 중복 파이프라인 자동 취소 체크박스를 선택합니다.
  5. 변경 사항 저장을 선택합니다.

interruptible 키워드를 사용하여 실행 중인 작업이 완료되기 전에 취소될 수 있는지 여부를 나타냅니다. interruptible: false인 작업이 시작된 후, 전체 파이프라인은 더 이상 중단 가능하다고 간주되지 않습니다.

구식 배포 작업 방지

  • 또한 구식 수동 또는 재시도된 배포 작업이 실행되는 것을 방지하는 기능이 GitLab 15.5에 추가되었습니다.

프로젝트에는 동일한 시간대에 실행되도록 예약된 여러 동시 배포 작업이 있을 수 있습니다.

이로 인해 이전 배포 작업이 새로운 작업 이후에 실행되는 상황이 발생할 수 있으며, 이는 원하지 않을 수 있습니다.

이 시나리오를 피하려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Settings > CI/CD를 선택합니다.
  3. General pipelines을 확장합니다.
  4. Prevent outdated deployment jobs 체크박스를 선택합니다.
  5. 선택 사항. Allow job retries for rollback deployments 체크박스를 지웁니다.
  6. Save changes를 선택합니다.

자세한 정보는 배포 안전성을 참조하세요.

파이프라인 또는 작업을 취소할 수 있는 역할 제한

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

어떤 역할이 파이프라인 또는 작업을 취소할 수 있는 권한을 가질지 사용자 정의할 수 있습니다.

기본적으로 최소한 개발자 역할이 있는 사용자가 파이프라인이나 작업을 취소할 수 있습니다. 취소 권한을 최소한 유지 관리자 역할이 있는 사용자로 제한하거나, 모든 파이프라인이나 작업의 취소를 완전히 방지할 수 있습니다.

파이프라인이나 작업을 취소하는 권한을 변경하려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Settings > CI/CD를 선택합니다.
  3. General pipelines을 확장합니다.
  4. Minimum role required to cancel a pipeline or job에서 옵션을 선택합니다.
  5. Save changes를 선택합니다.

사용자 정의 CI/CD 구성 파일 지정

GitLab은 프로젝트의 루트 디렉토리에서 CI/CD 구성 파일(.gitlab-ci.yml)을 찾기를 기대합니다. 그러나 다른 파일 이름 경로를 지정할 수 있으며, 프로젝트 외부의 위치도 포함됩니다.

경로를 사용자 정의하려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Settings > CI/CD를 선택합니다.
  3. General pipelines을 확장합니다.
  4. CI/CD configuration file 필드에 파일 이름을 입력합니다. 파일이:
    • 루트 디렉토리에 있지 않으면 경로를 포함합니다.
    • 다른 프로젝트에 있으면 그룹 및 프로젝트 이름을 포함합니다.
    • 외부 사이트에 있으면 전체 URL을 입력합니다.
  5. Save changes를 선택합니다.
note
다른 프로젝트나 외부 사이트에서 CI/CD 구성 파일을 편집하기 위해 프로젝트의 파이프라인 편집기를 사용할 수 없습니다.

사용자 정의 CI/CD 구성 파일 예시

CI/CD 구성 파일이 루트 디렉토리에 없으면 경로는 그에 상대적이어야 합니다. 예:

  • my/path/.gitlab-ci.yml
  • my/path/.my-custom-file.yml

CI/CD 구성 파일이 외부 사이트에 있는 경우, URL은 .yml로 끝나야 합니다:

  • http://example.com/generate/ci/config.yml

CI/CD 구성 파일이 다른 프로젝트에 있는 경우:

  • 파일은 기본 브랜치에 존재해야 하며, 브랜치를 refname으로 지정해야 합니다.
  • 경로는 다른 프로젝트의 루트 디렉토리에 상대적이어야 합니다.
  • 경로 뒤에는 @ 기호와 전체 그룹 및 프로젝트 경로가 와야 합니다.

예를 들어:

  • .gitlab-ci.yml@namespace/another-project
  • my/path/.my-custom-file.yml@namespace/sub-group/another-project
  • my/path/.my-custom-file.yml@namespace/sub-group1/sub-group2/another-project:refname

구성 파일이 별도의 프로젝트에 있는 경우, 보다 세분화된 권한을 설정할 수 있습니다. 예:

  • 구성 파일을 호스팅할 공개 프로젝트를 생성합니다.
  • 파일을 수정할 수 있는 권한을 가진 사용자에게만 프로젝트에 대한 쓰기 권한을 부여합니다.

그런 다음 다른 사용자와 프로젝트는 파일을 수정할 수 없으면서 구성 파일에 접근할 수 있습니다.

기본 Git 전략 선택

작업이 실행될 때 GitLab에서 리포지토리를 가져오는 방법을 선택할 수 있습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. Git 전략에서 옵션을 선택합니다:
    • git clone은 모든 작업에 대해 리포지토리를 처음부터 복제하므로 느립니다. 그러나 로컬 작업 복사본은 항상 깨끗합니다.
    • git fetch는 로컬 작업 복사본을 재사용하므로 더 빠릅니다(존재하지 않을 경우 clone으로 대체됨). 이는 특히 대규모 리포지토리에 권장됩니다.

구성된 Git 전략은 .gitlab-ci.yml 파일의 GIT_STRATEGY 변수로 재정의될 수 있습니다.

클론 중 가져올 변경 사항 수 제한

리포지토리를 클론할 때 GitLab CI/CD가 가져오는 변경 사항 수를 제한할 수 있습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. Git 전략Git 얕은 클론에서 값을 입력합니다. 최대 값은 1000입니다. 얕은 클론을 비활성화하고 GitLab CI/CD가 매번 모든 브랜치와 태그를 가져오도록 하려면 값을 비워두거나 0으로 설정합니다.

새로 생성된 프로젝트는 기본 git depth 값이 20입니다.

이 값은 .gitlab-ci.yml 파일의 GIT_DEPTH 변수로 재정의될 수 있습니다.

작업 실행 시간 제한 설정

작업이 시간 초과되기 전에 얼마나 실행될 수 있는지를 정의할 수 있습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. 타임아웃 필드에 분 수 또는 2 hours와 같은 사람이 읽을 수 있는 값을 입력합니다. 최소 10분 이상이어야 하며, 한 달 미만이어야 합니다. 기본값은 60분입니다. 대기 중인 작업은 비활성 상태가 24시간 지속된 후에 삭제됩니다.

타임아웃을 초과한 작업은 실패로 표시됩니다.

이 값을 개별 러너용으로 재정의할 수 있습니다.

파이프라인 배지

파이프라인 배지를 사용하여 프로젝트의 파이프라인 상태와 테스트 커버리지를 나타낼 수 있습니다. 이러한 배지는 최신 성공적인 파이프라인에 의해 결정됩니다.

GitLab CI/CD 파이프라인 비활성화

GitLab CI/CD 파이프라인은 모든 새 프로젝트에서 기본적으로 활성화되어 있습니다. Jenkins나 Drone CI와 같은 외부 CI/CD 서버를 사용하는 경우 커밋 상태 API와의 충돌을 피하기 위해 GitLab CI/CD를 비활성화할 수 있습니다.

프로젝트별로 또는 인스턴스의 모든 새 프로젝트에 대해 GitLab CI/CD를 비활성화할 수 있습니다.

GitLab CI/CD를 비활성화하면:

  • 왼쪽 사이드바에서 CI/CD 항목이 제거됩니다.
  • /pipelines/jobs 페이지를 더 이상 사용할 수 없습니다.
  • 기존 작업과 파이프라인이 숨겨지며 삭제되지 않습니다.

프로젝트에서 GitLab CI/CD를 비활성화하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 일반을 선택합니다.
  3. 가시성, 프로젝트 기능, 권한을 확장합니다.
  4. 리포지토리 섹션에서 CI/CD를 끕니다.
  5. 변경 사항 저장을 선택합니다.

이러한 변경 사항은 외부 통합 프로젝트에 적용되지 않습니다.