Change log
0.1.0
Initial release. paulrun runs hand-written markdown runbooks.
paulrun goruns a runbook's steps in order, streaming each block's output as it's printed and stopping at the first block that fails.runblocks for shell (sh,bash,shell) and Python (python,py), with thepythonfrontmatter key to choose the interpreter.docstringblocks to show notes as the runbook runs, andconfirmblocks to pause for steps done by hand.inputblocks to ask for a value part way through a run, once it exists: a pull request number from a step done by hand, or a one-time code that expires in seconds.- Inputs, collected from the environment or by asking, with an optional
patternto check them against. Plain inputs fill in<NAME>placeholders; secrets are hidden as you type them and replaced with****everywhere paulrun shows or records them. paulrun go --dryto see every block with its inputs filled in, without running anything.paulrun go --stepto run, skip or quit at each block.- Transcripts: with
output_pathset, every run is added to a plain record of what ran, what it printed and how it finished. - Ctrl-C stops a run cleanly, letting a running block stop and recording how far the run got.
paulrun checkto find problems before running anything: missing or malformed frontmatter, undeclared placeholders, secrets used as placeholders, blocks outside a step, and shell and Python syntax errors, with shellcheck warnings when it's installed.paulrun inputsto list the inputs a runbook needs, andpaulrun backendsto list the languages paulrun can run.- Backends for other languages can be added by any package, through the
paulrun.backendsentry point group.