Corbie

Commands

corbie test

corbie test <definition or script> [--input <json>] [--watch] | <directory>...

run a definition or a script in this process, with no setup

It runs a controller, a runner and a client in this process with the store in memory, waits until the run ends and prints it. It reads no config and keeps nothing. It fails unless the run ends with status done.

The ceilings allow everything. Each job's own allow: list still applies.

--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 --watchprint each entry of the run's record as it is written

Given directories, it reads every machine in them as corbie run submit does, prints each one ok or its problems, and starts nothing. It fails when a machine has a problem.

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.