파이프라인 구성 사용자화

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. 공개 파이프라인 확인란을 선택하거나 선택 해제합니다.
    • 선택될 때, 파이프라인 및 관련 기능은 다음과 같이 표시됩니다:
      • 공개 프로젝트는 누구에게나 표시됩니다.
      • 내부 프로젝트는 외부 사용자를 제외한 모든 인증된 사용자에게 표시됩니다(외부 사용자 제외).
      • 비공개 프로젝트는 모든 프로젝트 멤버(Guest 또는 더 높음)에게 표시됩니다.
    • 선택이 해제될 때:
      • 공개 프로젝트의 작업 로그, 작업 아티팩트, 파이프라인 보안 대시보드, 및 CI/CD 메뉴 항목은 프로젝트 멤버(Reporter 또는 더 높음)에게만 표시됩니다.
      • 다른 사용자, 게스트 사용자를 포함하여, 병합 요청 또는 커밋을 볼 때만 파이프라인 및 작업 상태를 볼 수 있습니다.
    • 선택 해제될 때:
      • 내부 프로젝트의 파이프라인은 외부 사용자를 제외한 모든 인증된 사용자에게 표시됩니다.
      • 관련 기능은 프로젝트 멤버(Reporter 또는 더 높음)에게만 표시됩니다.
    • 선택 해제될 때:
      • 비공개 프로젝트의 파이프라인과 관련 기능은 프로젝트 멤버(Reporter 또는 더 높음)에게만 표시됩니다.

공개 프로젝트에서 비프로젝트 멤버를 위한 파이프라인 가시성 변경

공개 프로젝트의 비프로젝트 멤버를 위한 파이프라인 가시성을 제어할 수 있습니다.

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

  • 프로젝트 가시성이 내부 또는 비공개로 설정되어 있을 때, 비프로젝트 멤버는 내부 또는 비공개 프로젝트에 액세스할 수 없습니다.
  • 공개 파이프라인 설정이 비활성화된 경우.

비프로젝트 멤버를 위한 파이프라인 가시성을 변경하려면:

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

CI/CD 권한 테이블에서 액세스 권한이 있는 모든 사용자가 선택되었을 때 비프로젝트 멤버가 액세스 할 수 있는 파이프라인 기능을 나열합니다.

중복 파이프라인 자동 취소

동일 브랜치로 새 변경 사항에 대한 파이프라인이 실행되면 대기 중이거나 실행 중인 파이프라인을 자동으로 취소할 수 있습니다. 이 작업은 프로젝트 설정에서 활성화할 수 있습니다:

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

실행 중인 작업을 완료하기 전에 취소가 가능한지 여부를 나타내기 위해 interruptible 키워드를 사용할 수 있습니다. interruptible: false로 시작한 작업 후에는 전체 파이프라인이 중지될 수 없게 됩니다.

오래된 배포 작업 방지

여러 개의 배포 작업이 동일한 시간대에 실행되도록 예약되어 있을 수 있습니다.

이렇게 되면, 새로운 배포 작업이 실행된 이후에 오래된 배포 작업이 실행될 수 있습니다. 이는 원하는 동작이 아닐 수 있습니다.

이러한 시나리오를 피하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. 오래된 배포 작업 방지 확인란을 선택합니다.
  5. 선택 사항: 롤백 배포에 대한 작업 재시도 허용 확인란을 비활성화합니다.
  6. 변경 사항 저장을 선택합니다.

자세한 내용은 배포 안전성을 참조하세요.

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

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

파이프라인 또는 작업을 취소할 수 있는 권한을 사용자화할 수 있습니다.

기본적으로 최소한 Developer 역할을 가진 사용자는 파이프라인 또는 작업을 취소할 수 있습니다. 파이프라인 또는 작업의 취소 권한을 최소한 Maintainer 역할을 가진 사용자로 제한하거나 파이프라인 또는 작업을 완전히 제한할 수 있습니다.

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

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. 파이프라인 또는 작업을 취소하기 위한 최소한 필요한 역할에서 옵션을 선택합니다.
  5. 변경 사항 저장을 선택합니다.

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

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

경로를 사용자화하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. CI/CD 구성 파일 필드에 파일 이름을 입력합니다. 파일이:
    • 루트 디렉터리에 없는 경우 경로를 포함합니다.
    • 다른 프로젝트에 있는 경우 그룹 및 프로젝트 이름을 포함합니다.
    • 외부 사이트에 있는 경우 전체 URL을 입력합니다.
  5. 변경 사항 저장을 선택합니다.

참고: 다른 프로젝트 또는 외부 사이트에서 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 구성 파일이 다른 프로젝트에 있다면:

  • 파일은 해당 프로젝트의 기본 브랜치에 존재해야 하거나, 참조 이름으로 브랜치를 명시해야 합니다.
  • 파일의 경로는 다른 프로젝트의 루트 디렉터리를 기준으로 상대적이어야 합니다.
  • 경로 뒤에 @ 기호와 전체 그룹 및 프로젝트 경로를 명시해야 합니다.

예를들어:

  • .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는 로컬 작업 복사본을 재사용하기 때문에 빠릅니다. (존재하지 않는 경우 클론으로 되감아집니다). 특히 대규모 저장소의 경우 추천됩니다.

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

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

GitLab CI/CD가 저장소를 클론할 때 가져오는 변경 사항의 수를 제한할 수 있습니다.

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

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

이 값을 .gitlab-ci.yml 파일에서 GIT_DEPTH 변수에 의해 재정의할 수 있습니다.

작업이 실행될 수 있는 최대 시간 제한 설정

작업이 몇 분 동안 실행될 수 있는지 정의할 수 있습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 클릭하여 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. 제한 시간 필드에 분 단위로 숫자를 입력하거나 2시간과 같이 사람이 읽기 쉬운 형식으로 입력합니다. 10분 이상, 1개월 미만이어야 합니다. 기본값은 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. 변경사항 저장을 선택합니다.

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