파이프라인 구성 커스터마이즈
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
프로젝트에 대한 파이프라인 실행 방식을 커스터마이즈할 수 있습니다. 공개 및 내부 프로젝트의 경우 다음을 볼 수 있는 사람을 변경할 수 있습니다: 파이프라인 및 관련 기능의 가시성을 변경하려면: 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
프로젝트에 대한 파이프라인 실행 방식을 커스터마이즈할 수 있습니다.
파이프라인을 볼 수 있는 사용자 변경#
공개 및 내부 프로젝트의 경우 다음을 볼 수 있는 사람을 변경할 수 있습니다:
- 파이프라인
- 잡 출력 로그
- 잡 아티팩트
- 파이프라인 보안 결과
파이프라인 및 관련 기능의 가시성을 변경하려면:
-
상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
-
왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
-
General pipelines를 확장합니다.
-
Project-based pipeline visibility 체크박스를 선택하거나 해제합니다. 선택하면 파이프라인 및 관련 기능이 표시됩니다:
- Public 프로젝트의 경우 모든 사람에게.
- Internal 프로젝트의 경우 외부 사용자를 제외한 모든 인증된 사용자에게.
- Private 프로젝트의 경우 모든 프로젝트 멤버(Guest 이상)에게.
해제하면:
- Public 프로젝트의 경우 잡 로그, 잡 아티팩트, 파이프라인 보안 대시보드 및 CI/CD 메뉴 항목은 프로젝트 멤버(Reporter 이상)에게만 표시됩니다. 게스트 사용자를 포함한 다른 사용자는 머지 리퀘스트 또는 커밋을 볼 때만 파이프라인 및 잡의 상태를 볼 수 있습니다.
- Internal 프로젝트의 경우 파이프라인은 외부 사용자를 제외한 모든 인증된 사용자에게 표시됩니다. 관련 기능은 프로젝트 멤버(Reporter 이상)에게만 표시됩니다.
- Private 프로젝트의 경우 파이프라인 및 관련 기능은 프로젝트 멤버(Reporter 이상)에게만 표시됩니다.
공개 프로젝트에서 비프로젝트 멤버의 파이프라인 가시성 변경#
공개 프로젝트에서 비프로젝트 멤버의 파이프라인 가시성을 제어할 수 있습니다.
이 설정은 다음의 경우 효과가 없습니다:
- 프로젝트 가시성이 Internal 또는 Private로 설정된 경우, 비프로젝트 멤버가 내부 또는 비공개 프로젝트에 액세스할 수 없기 때문입니다.
- Project-based pipeline visibility 설정이 비활성화된 경우.
비프로젝트 멤버의 파이프라인 가시성을 변경하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Visibility, project features, permissions를 확장합니다.
- CI/CD에 대해 다음을 선택합니다:
- Only project members: 프로젝트 멤버만 파이프라인을 볼 수 있습니다.
- Everyone With Access: 비프로젝트 멤버도 파이프라인을 볼 수 있습니다.
- Save changes를 선택합니다.
CI/CD 권한 테이블은 Everyone With Access가 선택된 경우 비프로젝트 멤버가 액세스할 수 있는 파이프라인 기능을 나열합니다.
중복 파이프라인 자동 취소#
동일한 브랜치에서 새 변경 사항에 대한 파이프라인이 실행될 때 대기 중이거나 실행 중인 파이프라인을 자동으로 취소하도록 설정할 수 있습니다. 프로젝트 설정에서 이를 활성화할 수 있습니다:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
- General Pipelines를 확장합니다.
- Auto-cancel redundant pipelines 체크박스를 선택합니다.
- Save changes를 선택합니다.
실행 중인 잡이 완료되기 전에 취소될 수 있는지 여부를 나타내려면 interruptible 키워드를 사용합니다. interruptible: false를 가진 잡이 시작되면 전체 파이프라인은 더 이상 중단 가능한 것으로 간주되지 않습니다.
오래된 배포 잡 방지#
프로젝트에 동일한 시간대에 실행되도록 예약된 여러 동시 배포 잡이 있을 수 있습니다.
이로 인해 이전 배포 잡이 새 배포 잡 이후에 실행되는 상황이 발생할 수 있으며 이는 원하지 않을 수 있습니다.
이 시나리오를 방지하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
- General pipelines를 확장합니다.
- Prevent outdated deployment jobs 체크박스를 선택합니다.
- 선택 사항. Allow job retries for rollback deployments 체크박스를 해제합니다.
- Save changes를 선택합니다.
자세한 내용은 배포 안전성을 참조하세요.
파이프라인 또는 잡을 취소할 수 있는 역할 제한#
히스토리
- GitLab 16.7에서 도입.
파이프라인 또는 잡을 취소할 권한이 있는 역할을 커스터마이즈할 수 있습니다.
기본적으로 Developer, Maintainer 또는 Owner 역할을 가진 사용자가 파이프라인 또는 잡을 취소할 수 있습니다. 취소 권한을 Maintainer 또는 Owner 역할을 가진 사용자만으로 제한하거나 파이프라인이나 잡의 취소를 완전히 방지할 수 있습니다.
파이프라인 또는 잡을 취소할 권한을 변경하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
- General pipelines를 확장합니다.
- Minimum role required to cancel a pipeline or job에서 옵션을 선택합니다.
- Save changes를 선택합니다.
커스텀 CI/CD 구성 파일 지정#
GitLab은 프로젝트의 루트 디렉토리에서 CI/CD 구성 파일(.gitlab-ci.yml)을 찾습니다. 그러나 프로젝트 외부 위치를 포함한 대체 파일 이름 경로를 지정할 수 있습니다.
경로를 커스터마이즈하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
- General pipelines를 확장합니다.
- CI/CD configuration file 필드에 파일 이름을 입력합니다. 파일이:
- 루트 디렉토리에 없는 경우 경로를 포함합니다.
- 다른 프로젝트에 있는 경우 그룹 및 프로젝트 이름을 포함합니다.
- 외부 사이트에 있는 경우 전체 URL을 입력합니다.
- Save changes를 선택합니다.
다른 프로젝트나 외부 사이트에 있는 CI/CD 구성 파일을 편집하는 데 프로젝트의 파이프라인 편집기를 사용할 수 없습니다.
커스텀 CI/CD 구성 파일 예시#
CI/CD 구성 파일이 루트 디렉토리에 없는 경우 경로는 루트 디렉토리에 대한 상대 경로여야 합니다. 예를 들어:
my/path/.gitlab-ci.ymlmy/path/.my-custom-file.yml
CI/CD 구성 파일이 외부 사이트에 있는 경우 URL은 .yml로 끝나야 합니다:
http://example.com/generate/ci/config.yml
CI/CD 구성 파일이 다른 프로젝트에 있는 경우:
- 파일은 기본 브랜치에 있어야 하거나 refname으로 브랜치를 지정합니다.
- 경로는 다른 프로젝트의 루트 디렉토리에 대한 상대 경로여야 합니다.
- 경로 뒤에
@기호와 전체 그룹 및 프로젝트 경로가 와야 합니다.
예를 들어:
.gitlab-ci.yml@namespace/another-projectmy/path/.my-custom-file.yml@namespace/subgroup/another-projectmy/path/.my-custom-file.yml@namespace/subgroup1/subgroup2/another-project:refname
구성 파일이 별도의 프로젝트에 있는 경우 더 세밀한 권한을 설정할 수 있습니다. 예를 들어:
- 구성 파일을 호스팅하기 위한 공개 프로젝트를 만듭니다.
- 파일을 편집할 수 있는 사용자에게만 프로젝트에 대한 쓰기 권한을 부여합니다.
그러면 다른 사용자와 프로젝트가 편집할 수 없는 구성 파일에 액세스할 수 있습니다.
기본 Git 전략 선택#
잡이 실행될 때 GitLab에서 저장소를 가져오는 방법을 선택할 수 있습니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
- General pipelines를 확장합니다.
- Git strategy에서 옵션을 선택합니다:
git clone은 모든 잡에 대해 저장소를 처음부터 복제하기 때문에 느립니다. 그러나 로컬 작업 복사본은 항상 원래 상태입니다.git fetch는 로컬 작업 복사본을 재사용하기 때문에 더 빠릅니다(존재하지 않으면 복제로 대체). 특히 대규모 저장소에 권장됩니다.
구성된 Git 전략은 .gitlab-ci.yml 파일의 GIT_STRATEGY 변수로 재정의할 수 있습니다.
클론 중에 가져온 변경 사항 수 제한#
GitLab CI/CD가 저장소를 복제할 때 가져오는 변경 사항 수를 제한할 수 있습니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
- General pipelines를 확장합니다.
- Git strategy 아래의 Git shallow clone에 값을 입력합니다.
최대값은
1000입니다. 얕은 복제를 비활성화하고 GitLab CI/CD가 매번 모든 브랜치와 태그를 가져오도록 하려면 값을 비워두거나0으로 설정합니다.
새로 만든 프로젝트의 기본 git depth 값은 20입니다.
이 값은 .gitlab-ci.yml 파일의 GIT_DEPTH 변수로 재정의할 수 있습니다.
잡 실행 시간 제한 설정#
잡이 시간 초과되기 전에 실행할 수 있는 시간을 정의할 수 있습니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
- General pipelines를 확장합니다.
- Timeout 필드에 분 수 또는
2 hours와 같은 사람이 읽을 수 있는 값을 입력합니다. 10분 이상 1개월 미만이어야 합니다. 기본값은 60분입니다. 대기 중인 잡은 24시간 비활성 후 삭제됩니다.
시간 초과를 초과하는 잡은 실패로 표시됩니다.
프로젝트 시간 초과와 러너 시간 초과가 모두 설정된 경우 낮은 값이 우선합니다.
1시간 동안 출력이 없는 잡은 시간 초과에 관계없이 삭제됩니다. 이를 방지하려면 진행 상황을 지속적으로 출력하는 스크립트를 추가하세요. 자세한 내용은 이슈 25359를 참조하세요.
파이프라인 배지#
파이프라인 배지를 사용하여 프로젝트의 파이프라인 상태 및 테스트 커버리지를 나타낼 수 있습니다. 이러한 배지는 최근에 성공한 파이프라인에 의해 결정됩니다.
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를 비활성화하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Visibility, project features, permissions를 확장합니다.
- Repository 섹션에서 CI/CD를 끕니다.
- Save changes를 선택합니다.
이러한 변경 사항은 외부 통합의 프로젝트에는 적용되지 않습니다.
자동 파이프라인 정리#
히스토리
- GitLab 17.7에서
ci_delete_old_pipelines라는 플래그와 함께 도입. 기본적으로 비활성화됨. - GitLab 17.9에서 Feature flag
ci_delete_old_pipelines제거됨.
Owner 역할을 가진 사용자는 파이프라인 저장소 관리 및 시스템 성능 향상을 위해 CI/CD 파이프라인 만료 시간을 설정할 수 있습니다. 시스템은 구성된 값보다 이전에 생성된 파이프라인을 자동으로 삭제합니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
- General pipelines를 확장합니다.
- Automatic pipeline cleanup 필드에 초 수 또는
2 weeks와 같은 사람이 읽을 수 있는 값을 입력합니다. 하루 이상 1년 미만이어야 합니다. 파이프라인을 자동으로 삭제하지 않으려면 비워 둡니다. 기본적으로 비어 있습니다. - Save changes를 선택합니다.
GitLab Self-Managed의 경우 관리자는 자동 파이프라인 정리의 상한을 높일 수 있습니다.
