workflow

Control when a pipeline is created and set pipeline-level settings.

Supported: rules, rules:variables, rules:auto_cancel, name, auto_cancel:on_new_commit, auto_cancel:on_job_failure

Examples

Pipeline name

workflow:
  name: "E2E Test Pipeline"

job:
  script: echo "job"

Run only on default branch

workflow:
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

job:
  script: echo "job"

Set variables per condition

workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      variables:
        DEPLOY_ENV: staging
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

job:
  script: echo "job"

Auto-cancel interruptible jobs on new commit

workflow:
  auto_cancel:
    on_new_commit: interruptible

job:
  interruptible: true
  script: sleep 60

Auto-cancel via rules

workflow:
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      auto_cancel:
        on_new_commit: interruptible

job:
  script: echo "job"