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

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

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

파이프라인 개요에 대한 비디오인 GitLab CI 파이프라인, 아티팩트 및 환경를 시청하세요. 또한 초보자를 위한 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로 시작한 작업 이후에는 전체 파이프라인이 더 이상 취소 가능한 것으로 간주되지 않습니다.

오래 된 배포 작업 방지

  • GitLab 12.9에서 도입.
  • GitLab 15.5에서 동작이 변경되어 오래 된 작업 실행을 방지하도록 되어 있습니다.

프로젝트에는 동일한 시간대에 실행할 예정인 여러 개의 동시 배포 작업이 있을 수 있습니다.

이로 인해 최신 배포 작업이 이전 작업 이후에 실행될 수 있으며, 이는 원하는 바가 아닐 수 있습니다.

이 시나리오를 피하려면:

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

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

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

Tier: 프리미엄, 얼티메이트 Offering: GitLab.com, Self-managed, GitLab Dedicated

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

기본적으로 적어도 개발자 역할을 가진 사용자는 파이프라인 또는 작업을 취소할 수 있습니다. 파이프라인 또는 작업을 취소할 수 있는 권한을 유지자 역할을 적어도 가진 사용자에게 제한하거나 어떤 파이프라인 또는 작업도 완전히 취소할 수 없도록 할 수 있습니다.

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

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

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

  • 외부 .gitlab-ci.yml 위치 지원 GitLab 12.6에서 도입됨.

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 클론은 매 작업마다 저장소를 처음부터 복제하기 때문에 느립니다. 그러나 로컬 작업 사본은 항상 쾌적합니다.
    • git 페치는 로컬 작업 사본을 재사용하기 때문에 빠릅니다 (존재하지 않는 경우 복제됨). 큰 저장소의 경우 특히 권장됩니다.

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

복제 중에 검색되는 변경 사항 수 제한

GitLab CI/CD가 저장소를 복제할 때 검색하는 변경 사항 수를 제한할 수 있습니다.

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

GitLab 14.7 이후에는 새로 생성된 프로젝트의 기본 git depth 값은 20입니다. GitLab 14.6 이전에는 기본 git depth 값은 50입니다.

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

작업 실행 시간 제한 설정

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

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. 제한 시간 필드에 분 단위로 숫자나 2시간과 같은 사람이 이해하기 쉬운 값과 같이 입력합니다. 최소 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. 변경사항 저장을 선택합니다.

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