Revision 8173e6b531889badd2fdcc88ad9eb9317ced9e3a authored by Thomas Letan on 07 July 2023, 08:37:14 UTC, committed by Thomas Letan on 02 August 2023, 18:25:35 UTC
Octogram is an abstraction layer on top of Tezt’s amazing orchestration features whose purpose is to provide a scriptable interface to run complex and large scale scenarios on remote runners. Scenarios are written in a Yaml file whose structure takes heavy inspiration from Ansible. As of now, Octogram supports the following features: - Define stages expected to run on a subset of the known agents defined by regular expressions. These regular expressions can capture part of the agent name to personalize each jobs. By default, agents run a stage concurrently, but it is also possible to run a stage sequentially on each agent. - Stages are defined as a collection of jobs which can either be run concurrently or sequentially. These jobs consists in executing a specific command. As of now, three commands are executed: (1) copy a file from the orchestrator to the agent, start a new Octez node on the agent, and (2) originate a new smart rollup from within the agent. Jobs have access to global variables. They get a copy of them when they are started, and they update the latest version of the global variables once they have finished to execute. - One job can be run several time using the `with_items' field. Each item in the list is derived into a unique job, when the `item' variable is accordingly set. By default, jobs derived fro a `with_items' field are run sequentially, but they can also be run concurrently if necessary. For instance, it is possible to concurrently deploy a list of files to an agent by listing them in a `with_items' field. - Jobs can update the global variables once they have completed. This is useful to transfer information over one job to the subsequent ones. - Allow cross-agent requests thanks to a global scheme of URI. As of now, it is possible to prefix the name of an Octez node chosen by Tezt by the name of the agent which manages them. So for instance, if the agent `node' has spawn an Octez node whose assigned name is `node1', then `node://node1' can be used whenever a node’s endpoint is expected.
1 parent da37bc4
File | Mode | Size |
---|---|---|
.github | ||
.gitlab | ||
_coverage_output | ||
contrib | ||
devtools | ||
docs | ||
emacs | ||
manifest | ||
michelson_test_scripts | ||
nix | ||
opam | ||
script-inputs | ||
scripts | ||
src | ||
tezt | ||
vendors | ||
.dockerignore | -rw-r--r-- | 1.2 KB |
.gitattributes | -rw-r--r-- | 369 bytes |
.gitignore | -rw-r--r-- | 1.6 KB |
.gitlab-ci.yml | -rw-r--r-- | 7.6 KB |
.npmrc | -rw-r--r-- | 62 bytes |
.ocamlformat | -rw-r--r-- | 388 bytes |
.pylintrc | -rw-r--r-- | 17.4 KB |
CHANGES.rst | -rw-r--r-- | 16.1 KB |
CODEOWNERS | -rw-r--r-- | 4.7 KB |
Dockerfile | -rw-r--r-- | 4.3 KB |
LICENSE | -rw-r--r-- | 1.3 KB |
Makefile | -rw-r--r-- | 17.6 KB |
README.md | -rw-r--r-- | 3.5 KB |
build.Dockerfile | -rw-r--r-- | 2.8 KB |
contributing.md | -rw-r--r-- | 2.2 KB |
default.nix | -rw-r--r-- | 3.4 KB |
dune | -rw-r--r-- | 903 bytes |
dune-project | -rw-r--r-- | 11.6 KB |
dune-workspace | -rw-r--r-- | 509 bytes |
kernels.mk | -rw-r--r-- | 1.9 KB |
package-lock.json | -rw-r--r-- | 1.7 KB |
package.json | -rw-r--r-- | 345 bytes |
poetry.lock | -rw-r--r-- | 35.9 KB |
pyproject.toml | -rw-r--r-- | 1.0 KB |
rust-toolchain | -rw-r--r-- | 7 bytes |
shell.nix | -rw-r--r-- | 2.9 KB |
Computing file changes ...