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

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

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

파이프라인에 대한 개요는 GitLab CI 파이프라인, 아티팩트 및 환경 동영상을 시청하세요. 또한 초보자를 위한 GitLab CI 파이프라인 자습서도 시청하세요.

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

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

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

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

      • 공개 프로젝트의 경우, 모든 사용자에게 공개됩니다.
      • 내부 프로젝트의 경우, 외부 사용자를 제외한 모든 인증된 사용자에게 공개됩니다(외부 사용자는 제외).
      • 비공개 프로젝트의 경우, 프로젝트 구성원(게스트 또는 더 높음)에게 공개됩니다.
    • 선택하지 않은 경우:

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

공개 프로젝트에서 프로젝트 외 구성원을 위한 파이프라인 가시성 변경

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

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

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

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

  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: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

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

기본적으로 적어도 Developer 역할을 가진 사용자는 파이프라인 또는 작업을 취소할 수 있습니다. Cancellation 권한을 최소한 Maintainer 역할을 가진 사용자에게로 제한하거나 아예 모든 파이프라인 또는 작업의 취소를 방지할 수 있습니다.

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

  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. 변경 사항 저장을 선택합니다.
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는 로컬 작업 사본을 재사용하기 때문에 더 빠릅니다 (그리고 존재하지 않는 경우 복제로 돌아갑니다). 특히 큰 리포지터리의 경우 추천합니다.

구성된 Git 전략은 .gitlab-ci.yml 파일의 GIT_STRATEGY 변수에 의해 덮어쓰여질 수 있습니다.

복제 동안 가져올 변경 수 제한

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

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 일반 파이프라인을 확장합니다.
  4. Git 전략 아래 얕은 복제에서 값이 입력되는 필드로 진입합니다. 최대 값은 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분 이상, 1개월 미만이어야 하며, 기본 값은 60분입니다. 대기 중인 작업은 비활동 기간 24시간 후에 삭제됩니다.

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

이 값을 개별 실행기에 덮어쓸 수 있습니다.

파이프라인 뱃지

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

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

모든 새로운 프로젝트에 기본적으로 GitLab CI/CD 파이프라인이 활성화되어 있습니다. 만약 Jenkins나 Drone CI 같은 외부 CI/CD 서버를 사용한다면, 충돌을 피하려면 GitLab CI/CD를 비활성화할 수 있습니다.

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

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

  • 왼쪽 사이드바의 CI/CD 항목이 제거됩니다.
  • /pipelines/jobs 페이지는 더 이상 이용할 수 없습니다.
  • 기존의 작업과 파이프라인은 숨겨지지만 지워지지는 않습니다.

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

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

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