Includes

Compose pipelines from multiple files using include: at the pipeline level.

Basic Include

Include jobs from external files:

  name: Main Pipeline

include:
  - ci/build.yml
  - ci/test.yml

jobs:
  default:
    aliases: [default]
    desc: Run all tasks
    steps:
      - run: echo "Running main pipeline"
      - run: echo "Included jobs are available as build, test"

Glob Patterns

Use glob patterns to include multiple files:

  name: My Pipeline

include: ci/*.yml

jobs:
  default:
    steps:
      - run: echo "Jobs from ci/*.yml are now available"

Include Behavior

  • Included files contribute their jobs to the main pipeline
  • Job names from included files are available directly
  • Duplicate job names cause an error
  • Relative paths are resolved from the main file's directory

Use Cases

Split by Domain

  name: My Project

include:
  - docker/*.yml
  - test/*.yml
  - deploy/*.yml

jobs:
  default:
    steps:
      - task: docker:build
      - task: test:unit

Team-Specific Files

  name: Monorepo

include:
  - frontend/tasks.yml
  - backend/tasks.yml
  - infra/tasks.yml

jobs:
  all:
    steps:
      - run: echo "All team tasks are available"

See Also