# This file is mix and match based upon the basic `assertoor-tests` playbooks:
#   - https://github.com/ethpandaops/assertoor-test/blob/master/assertoor-tests/stability-check.yaml
#   - https://github.com/ethpandaops/assertoor-test/blob/master/assertoor-tests/block-proposal-check.yaml
#
# For reference on each individual check see: https://github.com/ethpandaops/assertoor/wiki#supported-tasks-in-assertoor

id: el-stability-check
name: "Check Execution Stability"
timeout: 18m
tasks:
- name: check_clients_are_healthy
  title: "Check if all clients are ready"
  timeout: 1m

- name: run_tasks_concurrent
  title: "Check if all EL & CL clients are synced and the tx spammer is working"
  timeout: 5m
  config:
    tasks:
    - name: check_consensus_sync_status
      title: "Check if CL clients are synced"
    - name: check_execution_sync_status
      title: "Check if EL clients are synced"

- name: run_task_matrix
  title: "Check block proposals from all client pairs with tx spammer working and >= 240 transactions"
  timeout: 8m
  configVars:
    matrixValues: "validatorPairNames"
  config:
    runConcurrent: true
    matrixVar: "validatorPairName"
    task:
      minTransactionCount: 240
      name: check_consensus_block_proposals
      title: "Wait for block proposal from ${validatorPairName}"
      configVars:
        validatorNamePattern: "validatorPairName"

- name: run_tasks_concurrent
  title: "Check chain stability (reorgs and forks)"
  timeout: 7m
  config:
    tasks:
    - name: check_consensus_reorgs
      title: "Check consensus reorgs"
    - name: check_consensus_forks
      title: "Check consensus forks"