Skip to main content

Workflow structure

The workflow is the top-level definition that contains all jobs and their configurations.

Schema

See Schema Reference for the complete #Workflow definition.

Fields

id (required)

Unique identifier for this workflow. Forms part of the resource name: /workspaces/{workspace-id}/workflows/{id}.

Type: string (non-empty)

Usage:

  • Used when calling this workflow from other workflows via WorkflowCall.
  • Must be unique within the workspace.
  • Can be any string (e.g., model-training, data-pipeline-v2).

Example:

id: model-training-pipeline

See also: Reusable Workflows for workflow references and resource names.

name (optional)

Display name of the workflow.

Type: string

Note: Unlike the id field, the name is optional and does not need to be unique. Multiple workflows can share the same display name. The name is used for human-readable display only and is never used for WorkflowCall references.

Example:

id: model-training-pipeline
name: Model Training Pipeline

inputs (optional)

Workflow input parameters provided when triggering the workflow. Referenced using ${{ .inputs.<name> }}.

See Workflow Inputs for input definition, types, defaults, and usage.

concurrency (optional)

Controls concurrent execution of workflows. Prevents multiple workflow instances from running simultaneously.

Example:

concurrency:
group: model-deploy
cancel_in_progress: false

See Concurrency Control for detailed configuration.

trigger (optional)

Defines when the workflow runs (e.g., schedule with cron expressions) and whether it can be called by other workflows.

See Trigger Configuration for scheduling and Reusable Workflows for callable workflows.

env (optional)

Global environment variables available to all jobs and steps.

See Environment Variables for scope, inheritance, and precedence rules.

secrets (optional)

Secrets from H2O Secure Store. Defined at workflow level, referenced using ${{ .secrets.<as> }}.

See Secrets Management for secret definition, resource paths, and usage.

cancel_on_failure (optional)

Cancel all running jobs when any job fails. Defaults to true.

See Failure Handling for behavior, interaction with continue_on_error, and use cases.

jobs (required)

Map of job definitions, keyed by unique job ID. Each job contains steps that run sequentially.

See Job Structure for job configuration, runners, dependencies, and execution order.


Feedback