# Runs randomly generated E2E testnets nightly on main
# manually run e2e tests
name: e2e-manual
on:
  workflow_dispatch:

jobs:
  e2e-nightly-test:
    # Run parallel jobs for the listed testnet groups (must match the
    # ./build/generator -g flag)
    strategy:
      fail-fast: false
      matrix:
        group: ['00', '01', '02', '03', '04', '05']
    runs-on: ubuntu-latest
    timeout-minutes: 60
    steps:
      - uses: actions/setup-go@v5
        with:
          go-version: '1.22'

      - uses: actions/checkout@v4

      - name: Build
        working-directory: test/e2e
        # Run make jobs in parallel, since we can't run steps in parallel.
        run: make -j2 docker generator runner tests

      - name: Generate testnets
        if: matrix.group != 5
        working-directory: test/e2e
        # When changing -g, also change the matrix groups above
        run: ./build/generator -g 5 -d networks/nightly/ -p

      - name: Run p2p testnets (${{ matrix.group }})
        if: matrix.group != 5
        working-directory: test/e2e
        run: ./run-multiple.sh networks/nightly/*-group${{ matrix.group }}-*.toml

      - name: Run p2p testnets (regression)
        if: matrix.group == 5
        working-directory: test/e2e
        run: ./run-multiple.sh networks_regressions/*.toml
