Boot accessories after pre-deploy hook
That allows you to set proxy config in the hook before booting the proxy.
This commit is contained in:
@@ -9,18 +9,14 @@ class Kamal::Cli::Main < Kamal::Cli::Base
|
|||||||
say "Ensure Docker is installed...", :magenta
|
say "Ensure Docker is installed...", :magenta
|
||||||
invoke "kamal:cli:server:bootstrap", [], invoke_options
|
invoke "kamal:cli:server:bootstrap", [], invoke_options
|
||||||
|
|
||||||
say "Ensure kamal-proxy is running...", :magenta
|
deploy(boot_accessories: true)
|
||||||
invoke "kamal:cli:proxy:boot", [], invoke_options
|
|
||||||
|
|
||||||
invoke "kamal:cli:accessory:boot", [ "all" ], invoke_options
|
|
||||||
deploy(boot_proxy: false)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "deploy", "Deploy app to servers"
|
desc "deploy", "Deploy app to servers"
|
||||||
option :skip_push, aliases: "-P", type: :boolean, default: false, desc: "Skip image build and push"
|
option :skip_push, aliases: "-P", type: :boolean, default: false, desc: "Skip image build and push"
|
||||||
def deploy(boot_proxy: true)
|
def deploy(boot_accessories: false)
|
||||||
runtime = print_runtime do
|
runtime = print_runtime do
|
||||||
invoke_options = deploy_options
|
invoke_options = deploy_options
|
||||||
|
|
||||||
@@ -39,7 +35,9 @@ class Kamal::Cli::Main < Kamal::Cli::Base
|
|||||||
run_hook "pre-deploy", secrets: true
|
run_hook "pre-deploy", secrets: true
|
||||||
|
|
||||||
say "Ensure kamal-proxy is running...", :magenta
|
say "Ensure kamal-proxy is running...", :magenta
|
||||||
invoke "kamal:cli:proxy:boot", [], invoke_options if boot_proxy
|
invoke "kamal:cli:proxy:boot", [], invoke_options
|
||||||
|
|
||||||
|
invoke "kamal:cli:accessory:boot", [ "all" ], invoke_options if boot_accessories
|
||||||
|
|
||||||
say "Detect stale containers...", :magenta
|
say "Detect stale containers...", :magenta
|
||||||
invoke "kamal:cli:app:stale_containers", [], invoke_options.merge(stop: true)
|
invoke "kamal:cli:app:stale_containers", [], invoke_options.merge(stop: true)
|
||||||
|
|||||||
@@ -8,9 +8,7 @@ class CliMainTest < CliTestCase
|
|||||||
invoke_options = { "config_file" => "test/fixtures/deploy_simple.yml", "version" => "999", "skip_hooks" => false }
|
invoke_options = { "config_file" => "test/fixtures/deploy_simple.yml", "version" => "999", "skip_hooks" => false }
|
||||||
|
|
||||||
Kamal::Cli::Main.any_instance.expects(:invoke).with("kamal:cli:server:bootstrap", [], invoke_options)
|
Kamal::Cli::Main.any_instance.expects(:invoke).with("kamal:cli:server:bootstrap", [], invoke_options)
|
||||||
Kamal::Cli::Main.any_instance.expects(:invoke).with("kamal:cli:proxy:boot", [], invoke_options)
|
Kamal::Cli::Main.any_instance.expects(:deploy).with(boot_accessories: true)
|
||||||
Kamal::Cli::Main.any_instance.expects(:invoke).with("kamal:cli:accessory:boot", [ "all" ], invoke_options)
|
|
||||||
Kamal::Cli::Main.any_instance.expects(:deploy)
|
|
||||||
|
|
||||||
run_command("setup").tap do |output|
|
run_command("setup").tap do |output|
|
||||||
assert_match /Ensure Docker is installed.../, output
|
assert_match /Ensure Docker is installed.../, output
|
||||||
|
|||||||
Reference in New Issue
Block a user