Change log
0.4.0
- Add a cool logo to the cli output
0.3.0
- A runbook can set
step: truein its frontmatter to always run as if--stepwas given, asking before eachrunblock.--no-stepruns it straight through.checkreports astepthat isn'ttrueorfalse. - The book picker,
paulrun runwith no runbook, now takesqto quit, and says so:Run which? (q to quit). - A block skipped under
--stepis now shown, and recorded in the transcript, asskippedrather thanskipped (--step), sincestep: trueskips blocks too.
0.2.0
A runbook library
- keep runbooks you use across projects in
~/runbooks, or whereverPAULRUN_LIBRARYsays. Then run one by name from anywhere, e.g.paulrun rebuild-frontend.run,checkandinputsall take a book's name as well as a path, and a file where you are is always used before a book with the same name.paulrun librarylists the books in your library, with each one's title and description.paulrun run, with no runbook, lists them by number and runs the one you pick. -
A new docs page, Your runbook library, with a worked example of a book that rebuilds a frontend under nvm.
-
Breaking:
paulrun gois nowpaulrun run, and you don't need to type it:paulrun RELEASING.mdrunsRELEASING.md. Anything afterpaulrunthat isn't a command is a runbook to run, sopaulrun gois no longer a command.paulrunon its own still shows help. - Breaking: blocks now run in the folder you run paulrun from, not the folder the runbook is in. A relative
output_pathis now relative to that folder too. A runbook kept at the root of its project, run from there, works as before. One run aspaulrun path/to/RUNBOOK.mdfrom another folder now works on that other folder and writes its transcript there. This includes blocks run by external backends, whosecwdis now the folder paulrun was started from. - Blocks get
PAULRUN_RUNBOOK_DIR, the folder the runbook is in, so a runbook can still use files kept next to it. - Running a runbook shows the folder blocks will run in, as
directory:straight after the title, so you can check it before answeringStart?.--dryshows it too. paulrun library, the book picker andpaulrun inputsare in colour in a terminal: names you type are bold cyan, details are dim, and secrets and problems stand out. Piped output has no colour, as before.- Inputs can have a
default, shown at the prompt and used when you press enter. The environment still comes first.checkreports a default that isn't text, doesn't match the input'spattern, or is on a secret. - Inputs can have
choices: the only values accepted, listed at the prompt. You type the choice itself, and a value from the environment has to be one of them too.checkreports choices that aren't a list of text, a choice thepatternrefuses, a default that isn't a choice, and choices on a secret.
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.