InfoGrab Docs

`rules`로 잡 실행 시점 지정

rules 키워드를 사용하여 CI/CD 파이프라인에서 잡을 포함하거나 제외하는 방법.

파이프라인에서 잡을 포함하거나 제외하려면 rules 키워드를 사용하세요. 규칙은 첫 번째 매치가 발견될 때까지 순서대로 평가됩니다. 매치가 발견되면 설정에 따라 잡이 파이프라인에 포함되거나 제외됩니다. rules가 평가되기 전에 어떤 잡도 실행되지 않으므로, 잡 스크립트에서 생성된 dotenv 변수를 rules에서 사용할 수 없습니다. rules 예시 # 다음 예시는 if 를 사용하여 두 가지 특정 경우에만 잡이 실행되도록 정의합니다: job: script: echo "Hello, Rules!" rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: manual allow_failure: true - if: $CI_PIPELINE_SOURCE == "schedule" 파이프라인이 머지 요청을 위한 것이면 첫 번째 규칙이 매치되고, 잡이 다음 속성으로 머지 요청 파이프라인에 추가됩니다: when: manual (수동 잡) allow_failure: true (수동 잡이 실행되지 않아도 파이프라인은 계속 실행됨) 파이프라인이 머지 요청을 위한 것이 아니면 첫 번째 규칙이 매치되지 않고, 두 번째 규칙이 평가됩니다. 파이프라인이 예약된 파이프라인이면 두 번째 규칙이 매치되고, 잡이 예약된 파이프라인에 추가됩니다. 속성이 정의되지 않았으므로 다음 설정으로 추가됩니다: when: on_success (기본값) allow_failure: false (기본값) 다른 모든 경우에는 규칙이 매치되지 않으므로, 잡이 다른 파이프라인에 추가되지 않습니다. 또는 몇 가지 경우에 잡을 제외하고 다른 모든 경우에 실행하도록 규칙 세트를 정의할 수 있습니다: job: script: echo "Hello, Rules!" rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: never - if: $CI_PIPELINE_SOURCE == "schedule" when: never - when: on_success 파이프라인이 머지 요청을 위한 것이면 잡이 파이프라인에 추가되지 않습니다. 파이프라인이 예약된 파이프라인이면 잡이 파이프라인에 추가되지 않습니다. 다른 모든 경우에는 잡이 when: on_success 로 파이프라인에 추가됩니다. Warning 마지막 규칙으로 when 절을 사용하면( when: never 제외), 두 개의 파이프라인이 동시에 시작될 수 있습니다. 푸시 파이프라인과 머지 요청 파이프라인 모두 동일한 이벤트(열린 머지 요청의 소스 브랜치에 푸시)에 의해 트리거될 수 있습니다. 자세한 내용은 중복 파이프라인 방지 를 참조하세요. 예약된 파이프라인에서 잡 실행 # 파이프라인이 예약된 경우에만 잡을 실행하도록 구성할 수 있습니다. 예를 들면: job:on-schedule: rules: - if: $CI_PIPELINE_SOURCE == "schedule" script: - make world job: rules: - if: $CI_PI