예약된 파이프라인

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

정기적인 간격으로 GitLab CI/CD 파이프라인을 실행하려면 예약된 파이프라인을 사용하세요.

사전 요구 사항

예약된 파이프라인을 실행하려면 다음이 충족되어야 합니다:

  • 일정 소유자는 개발자 역할을 가져야 합니다. 보호된 브랜치의 파이프라인인 경우 일정 소유자는 브랜치에 병합 권한 이 있어야 합니다.
  • .gitlab-ci.yml 파일은 유효한 구문을 가져야 합니다.

그렇지 않으면 파이프라인이 생성되지 않습니다. 오류 메시지가 표시되지 않습니다.

파이프라인 일정 추가

파이프라인 일정을 추가하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 빌드 > 파이프라인 일정을 선택합니다.
  3. 새 일정을 선택하고 양식을 작성합니다.
    • 간격 패턴: 사전 구성된 간격 중 하나를 선택하거나 사용자 정의 간격을 cron 표기법으로 입력합니다. 모든 cron 값 을 사용할 수 있지만 예약된 파이프라인은 인스턴스의 최대 예약된 파이프라인 빈도보다 더 자주 실행될 수 없습니다.
    • 대상 브랜치 또는 태그: 파이프라인의 대상 브랜치 또는 태그를 선택합니다.
    • 변수: 일정된 파이프라인에서만 사용할 수 있는 CI/CD 변수를 추가합니다. 이러한 변수는 예약된 파이프라인이 실행될 때에만 사용되며, 다른 파이프라인 실행에는 사용되지 않습니다.

프로젝트에 이미 최대 파이프라인 일정 수가 있는 경우 다른 일정을 추가하기 전에 사용되지 않는 일정을 삭제해야 합니다.

파이프라인 일정 편집

  • GitLab 14.8에서 도입되었으며, 파이프라인 일정 소유자만 일정을 편집할 수 있습니다.

파이프라인 일정 소유자는 다음을 수정할 수 있습니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 빌드 > 파이프라인 일정을 선택합니다.
  3. 일정 옆에 편집을 선택하고 양식을 작성합니다.

사용자는 프로젝트의 개발자 역할 이상이어야 합니다. 사용자가 일정 소유자가 아닌 경우, 먼저 일정의 소유권을 가져야합니다.

수동 실행

파이프라인 일정을 수동으로 트리거하여 예약된 시간이 아닌 즉시 실행하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 빌드 > 파이프라인 일정을 선택합니다.
  3. 목록에서 실행하려는 파이프라인에 대해, 오른쪽에서 재생 ()을 선택합니다.

일정된 파이프라인은 분당 한 번까지만 수동으로 실행할 수 있습니다.

일정된 파이프라인을 수동으로 실행할 때, 파이프라인은 트리거한 사용자의 권한으로 실행되며 일정 소유자의 권한으로 실행되지 않습니다.

소유권 가져오기

예약된 파이프라인은 일정 소유자의 권한으로 실행됩니다. 파이프라인은 일정 소유자가 소유하고 있는 리소스에 액세스할 수 있으며, 이는 보호된 환경CI/CD 작업 토큰을 포함합니다.

다른 사용자가 만든 파이프라인의 소유권을 가져오려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 빌드 > 파이프라인 일정을 선택합니다.
  3. 일정된 파이프라인에 대해, 오른쪽에서 소유권 가져오기를 선택합니다.

다른 사용자가 만든 파이프라인의 소유권을 가져오려면 최소한 관리자(Maintainer) 역할이 필요합니다.

관련 주제

문제 해결

짧은 ref가 전체 ref로 확장됨

이 동작은 명시적 리소스를 강제하기 위해 소개되었으며, API는 여전히 short (예: main) 및 full (예: refs/heads/main 또는 refs/tags/main) ref를 모두 허용하고 제공된 short ref를 full ref로 확장합니다.

애매한 참조

참조가 확장될 때 전체 참조가 자동으로 유추되지 않을 수 있는 경우가 있습니다. 이러한 경우는 다음과 같을 수 있습니다:

  • 짧은 참조가 제공된 경우 (예: main), 그러나 제공된 짧은 참조 이름으로 된 브랜치와 태그가 모두 있는 경우
  • 짧은 참조가 제공된 경우, 그러나 제공된 짧은 참조 이름으로 된 브랜치나 태그가 둘 다 없는 경우