github: add nightly E2E testnet action (#5480)

This commit is contained in:
Erik Grinaker
2020-10-14 16:55:02 +02:00
committed by Erik Grinaker
parent 9379bc92fd
commit 5e6e6315ad
4 changed files with 58 additions and 7 deletions

View File

@@ -26,11 +26,11 @@ validator05 = 50
[node.seed01]
mode = "seed"
persistent_peers = ["seed02"]
seeds = ["seed02"]
[node.seed02]
mode = "seed"
persistent_peers = ["seed01"]
seeds = ["seed01"]
[node.validator01]
seeds = ["seed01"]

View File

@@ -16,9 +16,17 @@ import (
// Load generates transactions against the network until the given
// context is cancelled.
func Load(ctx context.Context, testnet *e2e.Testnet) error {
concurrency := 50
// Since transactions are executed across all nodes in the network, we need
// to reduce transaction load for larger networks to avoid using too much
// CPU. This gives high-throughput small networks and low-throughput large ones.
// This also limits the number of TCP connections, since each worker has
// a connection to all nodes.
concurrency := 64 / len(testnet.Nodes)
if concurrency == 0 {
concurrency = 1
}
initialTimeout := 1 * time.Minute
stallTimeout := 15 * time.Second
stallTimeout := 30 * time.Second
chTx := make(chan types.Tx)
chSuccess := make(chan types.Tx)
@@ -26,7 +34,7 @@ func Load(ctx context.Context, testnet *e2e.Testnet) error {
defer cancel()
// Spawn job generator and processors.
logger.Info("Starting transaction load...")
logger.Info(fmt.Sprintf("Starting transaction load (%v workers)...", concurrency))
started := time.Now()
go loadGenerate(ctx, chTx)

View File

@@ -24,7 +24,7 @@ func Start(testnet *e2e.Testnet) error {
if err := execCompose(testnet.Dir, "up", "-d", node.Name); err != nil {
return err
}
if _, err := waitForNode(node, 0, 10*time.Second); err != nil {
if _, err := waitForNode(node, 0, 15*time.Second); err != nil {
return err
}
logger.Info(fmt.Sprintf("Node %v up on http://127.0.0.1:%v", node.Name, node.ProxyPort))
@@ -56,7 +56,7 @@ func Start(testnet *e2e.Testnet) error {
if err := execCompose(testnet.Dir, "up", "-d", node.Name); err != nil {
return err
}
status, err := waitForNode(node, node.StartAt, 30*time.Second)
status, err := waitForNode(node, node.StartAt, 1*time.Minute)
if err != nil {
return err
}