Lifecycle Hooks Usage
You can use hooks to run scripts at specific steps of the Lono lifecycle.
Lifecycle Hooks
Hook | Description |
---|---|
build | When Lono builds the blueprint. |
down | When Lono deletes the stack. |
up | When Lono deploys the stack. |
Generator
To help you get started quickly, you can generate starter hook code. Check out the examples in the Hooks Generator Docs.
Example
config/hooks.rb
before("build",
execute: "echo hi",
)
after("build",
execute: "echo bye"
)
exit on fail
By default, if the hook commands fail, then lono will exit with the original hook error code. You can change this behavior with the exit_on_fail
option.
before("build",
execute: "/command/will/fail/but/will/continue",
exit_on_fail: false,
)
In this case, regardless of the hook command succeeding or failing, Lono will continue right along.
General Form
before(COMMAND_NAME, OPTIONS)
The command name corresponds to the lono
commands.
Hook Options
Name | Description |
---|---|
label | A human-friendly label so you can see what hooks is being run. |
execute | The script or command to run. IE: path/to/some/script.sh |
exit_on_fail | Whether or not to continue process if the script returns an failed exit code. |
Ruby Hooks
Instead of using a script for the hook execute
option, you can also use a Ruby object. This provides some more control over the current process. See: Ruby Hooks
Boot Hooks
If you need to hook into the Lono boot process super-early on, check out Boot Hook.
Process Context
The context in which the hook runs is worth highlighting. When the execute
option is a String, Lono runs the script in a new child process. This the script is an independent process, and whatever is done to its environment is segregated.
When the execute
option a Ruby object, then Lono runs the hook within the same process. It means the hook can affect the same environment. IE: Setting environment variables.