corbie test runs everything in one process and keeps nothing. To keep runs, start a controller and a runner once and submit runs to them.
Set up
corbie init --ceiling all --name laptop Next: corbie start
init creates a controller, a runner and a client in the config directory, ~/.config/corbie, and the store in it. --name laptop names them laptop-controller, laptop-runner and laptop-client. --ceiling all sets the most any job on this computer may be allowed, and a job still gets only what its own allow: list grants.
Start the processes
corbie start &This command keeps running, in its own terminal or in the background as here.
Submit a run
corbie run submit title.yaml --input '{"url": "https://example.com"}'run submit writes the definition, the script and the input to the store, prints the run's ID and exits. The controller starts the run. <id> below is that ID.
corbie run show <id> --wait input: {"url":"https://example.com"} output: {"title":"Example Domain","url":"https://example.com"} used: net:example.com:443
--wait returns when the run has ended.
Read the record
corbie run show <id> --record step 1 <- start {"url":"https://example.com"} step 1 -> job get_title: a script, on laptop-runner step 2 <- done from get_title {"title":"Example Domain","url":"https://example.com"} step 2 done
The record holds every step of the run. <- is an event the machine received and -> is a job it started. At step 1 the controller received the start message and sent the script to the runner, and at step 2 it received the result and ended the run.
The store
The record is files in ~/.config/corbie/store, which corbie run show reads. Stop corbie start with Ctrl-C and corbie run show <id> prints the same result. A run submitted while no controller is running is shown as waiting.
Next: Install covers running Corbie on several computers, on a bucket and as serverless functions.