CI/CD Schedules
파이프라인은 일반적으로 충족되는 특정 조건에 따라 실행됩니다. 예를 들어, 브랜치가 리포지터리로 푸시되는 경우입니다.
파이프라인 스케줄을 사용하여 특정 간격으로 파이프라인을 실행할 수도 있습니다. 예를 들면 :
- 특정 브랜치에 대해 매월 22일
- 매일 한 번
GitLab UI를 사용하는 것 외에도 Pipeline schedules API를 사용하여 파이프라인 스케줄을 유지 관리할 수 있습니다.
스케줄 타이밍은 Fugit에 의해 파싱된 cron 표기법으로 구성됩니다.
전제 조건
예약된 파이프라인을 성공적으로 생성하려면 :
- 스케줄 소유자는 대상 브랜치에 병합할 권한이 있어야 합니다.
- 파이프라인 구성이 유효해야 합니다.
그렇지 않으면 파이프라인이 생성되지 않습니다.
파이프라인 스케줄 구성
프로젝트의 파이프라인을 예약하려면 :
- 프로젝트의 CI/CD > Schedules 페이지로 이동합니다.
- New schedule 버튼을 클릭합니다.
- Schedule a new pipeline 양식을 채웁니다.
- Save pipeline schedule 버튼을 클릭합니다.
참고 : 파이프라인 실행 타이밍은 Sidekiq의 자체 스케줄에 따라 다릅니다.
Schedules 인덱스 페이지에서 실행하도록 예약되어 있는 파이프라인의 목록을 볼 수 있습니다. 다음 실행은 GitLab이 설치된 서버에서 자동으로 계산됩니다.
변수 사용
임의의 변수를 얼마든지 전달할 수 있습니다. GitLab CI/CD에서 사용할 수 있으므로 .gitlab-ci.yml
파일에서 사용할 수 있습니다.
only 및 except 사용
파이프라인이 예약된 경우에만 (또는 그 반대) 실행되도록 Job을 구성하려면 구성 키워드 only 및 except를 사용합니다.
예를 들면 :
job:on-schedule:
only:
- schedules
script:
- make world
job:
except:
- schedules
script:
- make build
고급 구성
스케줄은 간격에 따라 실행되는 Sidekiq에 의해 처리되기 때문에 파이프라인은 예정대로 정확하게 실행되지 않습니다.
예를 들어, 다음과 같은 경우 하루에 두 개의 파이프라인만 생성됩니다.
- 1분마다 파이프라인을 생성하도록 스케줄을 설정합니다.
( * * * * *)
- Sidekiq worker는 매일 00:00 및 12:00에 실행됩니다.
( 0 */12 * * *)
Sidekiq worker의 빈도를 변경하려면 :
- 인스턴스의
gitlab.rb
파일에서gitlab_rails['pipeline_schedule_worker_cron']
의 값을 편집합니다. - 변경사항을 적용하려면 GitLab을 재구성 합니다.
예약된 파이프라인 작업
구성 후 GitLab은 예약된 파이프라인 작업을 위한 많은 기능을 지원합니다.
수동으로 실행
파이프라인 스케줄을 수동으로 트리거하려면 "Play" 버튼을 클릭합니다.
이렇게 하면 파이프라인 스케줄을 실행하기 위한 백그라운드 Job이 예약됩니다. 플래시 메시지는 CI/CD 파이프라인 인덱스 페이지에 대한 링크를 제공합니다.
참고 : 남용을 방지하기 위해 사용자는 1분에 한 번 파이프라인을 트리거하는 속도로 제한됩니다.
소유권 확보
파이프라인은 스케줄을 소유한 사용자로 실행됩니다. 이는 파이프라인이 액세스할 수 있는 프로젝트 및 기타 리소스에 영향을 줍니다.
사용자가 파이프라인을 소유하지 않은 경우, Take ownership 버튼을 클릭하여 소유권을 가져올 수 있습니다. 다음에 파이프라인이 예약될 때 자격 증명이 사용됩니다.
파이프라인 스케줄의 소유자가 대상 브랜치에서 파이프라인을 생성할 수 없는 경우, 스케줄은 새 파이프라인 생성을 중지합니다.
예를 들어, 다음과 같은 경우에 발생할 수 있습니다.
- 소유자가 프로젝트에서 차단되거나 제거된 경우
- 대상 분기 또는 태그가 보호된 경우
이 경우 충분한 권한을 가진 사람이 일정의 소유권을 가져야 합니다.
GitLab 원문 보기⚠️ 사전 동의 없이 2차 가공 및 영리적인 이용을 금하며, 온·오프라인에 무단 전재 또는 유포할 수 없습니다.