Skip to content

chains/

A chain is an ordered list of workflow runs executed as one session — CI then deploy, release then publish. Chain scenario files live in .overwire/chains/<name>.yml and run with overwire chain <file>. JSON Schema: chain.

# yaml-language-server: $schema=https://docs.overwire.io/schemas/chain.schema.json
name: CI then Deploy
runs:
- id: ci
workflow: ci.yml
event: push
- id: deploy
workflow: deploy.yml
event: workflow_dispatch
continueOnError: true
FieldDescription
workflowWorkflow to run, by file name or stem (required).
eventEvent to simulate for this run. Defaults to push.
idOptional label for the entry.
payloadOptional path to an event payload override JSON file for this run.
defaultModeOptional skip/mock/live default for this run, overriding modes.yml.
continueOnErrorKeep the session going when this run fails. Defaults to false — a failed or cancelled run stops the chain.

Saved dispatch defaults and payload overrides from .overwire/ apply to chain runs the same way they apply to overwire run, so a workflow_dispatch entry does not need a payload: of its own.

After each run completes, workflows triggered by workflow_run on the finished workflow join the session automatically, so a chain that runs CI also exercises everything CI triggers.

Each chain execution records a session under .overwire/state/. Inspect past sessions with overwire chain list and overwire chain show <session-id> — note that list/show operate on recorded sessions; running a chain always takes a scenario file path.

overwire.io

Overwire is not affiliated with, endorsed by, or sponsored by GitHub, Inc., Microsoft Corporation, or Docker, Inc. GitHub and GitHub Actions are trademarks of GitHub, Inc.