예약된 파이프라인

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

일정한 간격으로 GitLab CI/CD 파이프라인을 실행하는 데 예약된 파이프라인을 사용하세요.

사전 조건

예약된 파이프라인을 실행하려면:

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

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

파이프라인 스케줄 추가

  • 태그용 예약된 파이프라인은 GitLab 14.9에서 도입되었습니다.

파이프라인 스케줄을 추가하려면:

  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는 여전히 짧은 (예: main) 및 전체 (예: refs/heads/main 또는 refs/tags/main) ref를 모두 허용하고, 제공된 짧은 ref를 전체 ref로 확장합니다.

모호한 Refs

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

  • 짧은 ref가 제공되지만 제공된 짧은 ref 이름으로 브랜치와 태그가 둘 다 존재하는 경우
  • 짧은 ref가 제공되지만 제공된 짧은 ref 이름으로 브랜치나 태그가 모두 존재하지 않는 경우