Skip to main content

๐Ÿ”€ DAG Workflows

Workflows (DAGs) in X-AutoMate allow you to define a sequence of tasks that execute in a specific order or conditionally, based on the results of previous tasks. With DAGs, you can orchestrate full end-to-end testing flows across multiple technologies and systems.


๐Ÿšฆ Why Use DAG Workflows?โ€‹

You can combine various types of tasks into a single DAG, such as:

  • โœ… API tests (Custom Tests)
  • ๐Ÿงช ETL Tests
  • ๐Ÿ–ฅ๏ธ UI Tests
  • ๐Ÿงพ Metadata Gathering
  • ๐Ÿ“Š Profiling Tasks

Each workflow node represents a task and can be connected sequentially or in parallel. You can also apply conditional logic so that a node only executes if certain statuses from previous nodes are met.


๐Ÿงฉ Node Statusesโ€‹

After execution, each node receives one of the following statuses:

  • Success โ€“ Test executed and passed.
  • Failed โ€“ Test executed but failed.
  • Error โ€“ Task execution itself failed.
  • Skipped โ€“ Node was not triggered due to unmet conditions.

โš™๏ธ Trigger Conditionsโ€‹

Each node can be conditionally triggered based on the status of its parent nodes:

ConditionTrigger Rule
ANYRuns if any parent node finishes (unless Skipped).
SUCCESSRuns if at least one parent node has status Success.
FAILEDRuns if at least one parent node has status Failed.
ERRORRuns if at least one parent node has status Error.
ALL SUCCESSRuns only if all parent nodes have status Success.
ALL FAILEDRuns only if all parent nodes have status Failed.
ALL ERRORRuns only if all parent nodes have status Error.
Note:

Nodes with no parent (head nodes) always default to ANY and cannot have conditional triggers.

You can mix statuses like SUCCESS, FAILED, and ERROR, but you cannot combine ALL or ANY with others.


๐Ÿงฌ Runtime Variables & Parameter Modesโ€‹

Each node can define Runtime Variables and decide how parameters are passed to child nodes.

ModeDescription
ISOLATEDNo variable passing between nodes.
PASS OVERPass runtime variables from parent to child nodes directly.
REUSE ENVChild node reuses parent node's environment.
MERGE FORWARD ENVMerge parent runtime variables with a defined group, then use in the child.
FORWARD ENVForward only the runtime variables from the parent to the child node.

Read more: Runtime Variables


๐Ÿ›  Creating a DAG Workflowโ€‹

  1. Open the Workflow tab under the E2E section in the sidebar.

Dag Menu

  1. Fill in the workflow name, optional tags, and description.

Main DAG details

  1. If you want to base this DAG on an existing template, click "Select From Template".

  2. Use the designer to add nodes by clicking the โž• icon where needed:

Dag Designer

  1. In the node creation modal, define:
    • Node name
    • Type of task
    • Tests or parameters to run
    • Connection, release, and runtime variables
    • Trigger conditions for the node

Node Designer View Node Task Selected

๐Ÿง  Only ANY is allowed for trigger condition on head nodes.


๐ŸŽฏ Node Designer Viewโ€‹

Once a node is submitted, it appears on the designer canvas. You can add as many nodes as required, building sequential or parallel paths.

First Node


๐Ÿ’พ Saving or Running the DAGโ€‹

When your workflow is complete:

  • โœ… Choose to Save as Template (for reuse)
  • ๐Ÿ”” Enable notification on DAG execution events
  • โ–ถ๏ธ Click Submit to execute the workflow

Configured DAG


If you'd like to organize multiple DAGs into a reusable bundle, check out Group Executions.