Add pre and post app boot hooks

Add two new hooks pre-app-boot and post-app-boot. They are analagous
to the pre/post proxy reboot hooks.

If the boot strategy deploys in groups, then the hooks are called once
per group of hosts and `KAMAL_HOSTS` contains a comma delimited list of
the hosts in that group.

If all hosts are deployed to at once, then they are called once with
`KAMAL_HOSTS` containing all the hosts.

It is possible to have pauses between groups of hosts in the boot config,
where this is the case the pause happens after the post-app-boot hook is
called.
This commit is contained in:
Donal McBreen
2025-02-03 14:14:39 +00:00
parent 09d020e9bb
commit cd73cea850
17 changed files with 116 additions and 99 deletions

View File

@@ -15,7 +15,9 @@ class AppTest < IntegrationTest
# kamal app start does not wait
wait_for_app_to_be_up
kamal :app, :boot
output = kamal :app, :boot, "--verbose", capture: true
assert_match "Booting app on vm1,vm2...", output
assert_match "Booted app on vm1,vm2...", output
wait_for_app_to_be_up