Corbie

Commands

corbie run submit

corbie run submit <definition or script> [--input <json>] [--wait | --watch] | <directory>... [--again <file>]

start a run and print its ID

It reads the definition and the files it names, reports every fault in them together, uploads the files and sends the start message. It prints the run's ID and exits, unless --wait or --watch is given.

--input <json>the run's input; --input @file reads the JSON from a file --input-file name=patha file as a blob in the input, under that name; repeatable --label k=va label on the run, readable by anyone who can list runs; repeatable --key <key>the key that names the run among this client's running runs; refused if a running run has it --allow <entry>one permission the run's jobs may use; with --allow or --deny they may use no other; repeatable --deny <entry>one permission the run's jobs are refused, whatever is allowed; repeatable --timeout <time>the longest the run may take, such as 1h; it cannot extend the definition's timeout --secret NAMEa run secret, its value typed at the terminal and not shown; repeatable --secret-env NAMEa run secret, its value read from the environment variable NAME; repeatable --life <time>how long the start message is valid while no controller takes it; default 5m --waitwait until the run ends, then print it --watchprint each entry of the run's record as it is written, until the run ends

With --wait or --watch the command fails unless the run ends with status done.

Given directories, it reads every *.yaml in them and those below them, but for .git, whose first key gives a type of machine. It starts a machine whose latest run is at another hash, or that has no run, and cancels any run still going. It cancels the run of a machine whose file has gone. A run at the machine's hash is left as it is, running or ended. A file with a problem is reported, and its run is left as it is. Each run has the key file:<path>, from the current directory, which is the context. A machine whose input: names dir is given the context's absolute path there.

  --again <file>   start this machine though its run has ended; repeatable

A script file (.js) can be given in place of a definition. Corbie wraps it in a flow of one stage, and these flags set that stage's job. With a definition, --memory and --tag are refused.

--allow, --denythe job's allow and deny lists --timeout <time>the job's timeout; default 5m --memory <size>the most memory the job may use, such as 256MB; default no limit --tag <tag>a tag the job's runner must have; repeatable
  • Permissions the entries --allow and --deny take
  • Runs a run as JSON, and one run's file as another run's input

Every command takes --json, --config and --store: see corbie --help.