파이프라인 구성 맞춤 설정

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

프로젝트의 파이프라인 실행 방식을 맞춤 설정할 수 있습니다.

파이프라인 개요는 GitLab CI Pipeline, Artifacts, and Environments 비디오를 시청하세요. 또한 GitLab CI pipeline tutorial for beginners도 시청해보세요.

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

공개 및 내부 프로젝트에 대해 다음을 볼 수 있는 사용자를 변경할 수 있습니다:

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

  1. 좌측 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. 공개 파이프라인 확인란을 선택하거나 선택 해제합니다. 선택한 경우 다음이 표시됩니다.

    • 공개 프로젝트의 경우, 모든 사람에게 표시됩니다.
    • 내부 프로젝트의 경우, 외부 사용자를 제외한 모든 인증된 사용자에게 표시됩니다(외부 사용자 제외).
    • 비공개 프로젝트의 경우, 모든 프로젝트 멤버(Guest 또는 높음)에게만 표시됩니다.

    선택을 해제한 경우:

    • 공개 프로젝트의 경우, 작업 로그, 작업 아티팩트, 파이프라인 보안 대시보드 및 CI/CD 메뉴 항목은 프로젝트 멤버(Reporter 이상)만 볼 수 있습니다. 기타 사용자, 포함하여 guest 사용자는 Merge Request 또는 커밋을 볼 때만 파이프라인 및 작업 상태를 볼 수 있습니다.
    • 내부 프로젝트의 경우, 파이프라인은 외부 사용자를 제외한 모든 인증된 사용자에게 표시됩니다. 관련 기능은 프로젝트 멤버(Reporter 이상)만 볼 수 있습니다.
    • 비공개 프로젝트의 경우, 파이프라인 및 관련 기능은 프로젝트 멤버(Reporter 이상)에게만 표시됩니다.

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

공개 프로젝트에서 프로젝트 멤버가 아닌 사용자의 파이프라인 가시성을 제어할 수 있습니다.

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

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

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

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

중복되는 파이프라인 자동 취소

동일 브랜치에서 새 변경에 대한 파이프라인이 실행될 때 보류 중이거나 실행 중인 파이프라인을 자동으로 취소할 수 있습니다. 이 기능은 프로젝트 설정에서 활성화할 수 있습니다.

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

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

구식 배포 작업 방지

  • GitLab 15.5에서 행동이 변경되었습니다.

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

이는 순서 및 시간이 지나서 더 최신 배포 작업이 이전에 실행되는 상황을 초래할 수 있습니다.

이러한 시나리오를 피하기 위해:

  1. 좌측 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. 구식 배포 작업 방지 확인란을 선택합니다.
  5. 선택 사항입니다. 롤백 배포에 대한 작업 재시도 허용 확인란을 선택 해제합니다.
  6. 변경 사항 저장을 선택합니다.

추가 정보는 배포 안전성을 참조하세요.

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

Tier: Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated
  • GitLab 16.7에서 도입되었습니다.

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

기본적으로 최소한 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 구성 파일이 다른 프로젝트에 있는 경우:

  • 파일은 기본 브랜치에 있어야 하며, 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은 로컬 작업 복사본을 재사용하기 때문에 더 빠릅니다 (그리고 없을 경우 복제로 돌아갑니다). 특히 대형 리포지터리의 경우 권장됩니다.

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

복제 중 가져올 변경 사항 수 제한

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

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

버전 14.7 이상의 GitLab에서 새로 생성된 프로젝트는 기본값으로 git 깊이 값을 20으로 가지고 있습니다. GitLab 버전 14.6 이전의 기본 git 깊이 값은 50입니다.

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

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

작업이 타임아웃되기 전에 얼마나 오랫동안 실행될 수 있는지 정의할 수 있습니다.

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

제한 시간을 초과한 작업은 실패로 표시됩니다.

이 값을 개별 runner에 대해 재정의할 수 있습니다.

파이프라인 뱃지

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

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. 변경 사항 저장을 선택합니다.

이러한 변경은 외부 통합에서는 적용되지 않습니다.