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을 재구성합니다.