---
- name: Verify Ansible versions
  hosts: all
  tags: always
  become: false
  run_once: true
  gather_facts: false
  tasks:
    - local_action: command ./versioncheck.py
      changed_when: false

- name: Deploy Spolia Testnet nodes
  become: true
  serial: '{{ serial|default(1) }}'
  hosts:
    - nimbus-sepolia-linux
  roles:
    - { role: open-ports,         tags: [ open-ports ]        }
    - { role: smart-metrics,      tags: [ smart-metrics ]     }
    - { role: redirect-ports,     tags: [ redirect-ports ]    }
    - { role: nimbus-era-files,   tags: [ nimbus-era-files ]  }
  tasks:
    - include_role: name=infra-role-geth
      with_items: '{{ nodes_layout[hostname] }}'
      loop_control:
        loop_var: node
        index_var: idx

    - include_role: name=infra-role-beacon-node-linux
      with_items: '{{ nodes_layout[hostname] }}'
      loop_control:
        loop_var: node
        index_var: idx

    - include_role: name=infra-role-validator-client
      with_items: '{{ nodes_layout[hostname] }}'
      loop_control:
        loop_var: node
        index_var: idx

- name: Deploy Spolia Testnet Nimbus-Eth1 trial
  become: true
  serial: '{{ serial|default(1) }}'
  hosts:
    - nimbus-sepolia-linux
  tasks:
    - name: Load network specific variables
      tags: [ always ]
      include_vars: file=vars/nimbus-sepolia-trial.yml

    - include_role: name=infra-role-nimbus-eth1
      with_items: '{{ nodes_layout[hostname] }}'
      loop_control:
        loop_var: node
        index_var: idx

    - include_role: name=infra-role-beacon-node-linux
      with_items: '{{ nodes_layout[hostname] }}'
      loop_control:
        loop_var: node
        index_var: idx