The goal clerk dryrun command (in opposition to the goal clerk dryrun-remote) is in theory capable of running dry runs without an actual node running. If we use this functionality, we could potentially save on most of the startup times of the C.I. in this repo (and pyteal as well). In theory, this would work as follows:
add offline option to executions: e.g. DryRunExecutor.execute_one_dryrun(offline=True, ...)
this delegates to an os-level process goal clerk dryrun ...
the response should come back as a JSON
the response's transactions are then consumed as usual by blackbox.DryRunInspctor
inspections and assertions proceed as in the current approach
Closing as there isn't a clear path forward and #14 provides an alternate approach that may not be as performant as the approach suggested here, but cannot be too far behind given its 20 second bootstrap time.
The
goal clerk dryrun
command (in opposition to thegoal clerk dryrun-remote
) is in theory capable of running dry runs without an actual node running. If we use this functionality, we could potentially save on most of the startup times of the C.I. in this repo (and pyteal as well). In theory, this would work as follows:offline
option to executions: e.g.DryRunExecutor.execute_one_dryrun(offline=True, ...)
goal clerk dryrun ...
blackbox.DryRunInspctor