|
|
|
|
@@ -10,7 +10,7 @@ class CliMainTest < CliTestCase
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
test "deploy" do
|
|
|
|
|
invoke_options = { "config_file" => "test/fixtures/deploy_with_accessories.yml", "skip_broadcast" => false, "skip_push" => false }
|
|
|
|
|
invoke_options = { "config_file" => "test/fixtures/deploy_with_accessories.yml", "skip_broadcast" => false, "version" => "999" }
|
|
|
|
|
|
|
|
|
|
Mrsk::Cli::Main.any_instance.expects(:invoke).with("mrsk:cli:server:bootstrap", [], invoke_options)
|
|
|
|
|
Mrsk::Cli::Main.any_instance.expects(:invoke).with("mrsk:cli:registry:login", [], invoke_options)
|
|
|
|
|
@@ -31,7 +31,7 @@ class CliMainTest < CliTestCase
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
test "deploy with skip_push" do
|
|
|
|
|
invoke_options = { "config_file" => "test/fixtures/deploy_with_accessories.yml", "skip_broadcast" => false, "skip_push" => true }
|
|
|
|
|
invoke_options = { "config_file" => "test/fixtures/deploy_with_accessories.yml", "skip_broadcast" => false, "version" => "999" }
|
|
|
|
|
|
|
|
|
|
Mrsk::Cli::Main.any_instance.expects(:invoke).with("mrsk:cli:server:bootstrap", [], invoke_options)
|
|
|
|
|
Mrsk::Cli::Main.any_instance.expects(:invoke).with("mrsk:cli:registry:login", [], invoke_options)
|
|
|
|
|
@@ -52,7 +52,7 @@ class CliMainTest < CliTestCase
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
test "redeploy" do
|
|
|
|
|
invoke_options = { "config_file" => "test/fixtures/deploy_with_accessories.yml", "skip_broadcast" => false, "skip_push" => false}
|
|
|
|
|
invoke_options = { "config_file" => "test/fixtures/deploy_with_accessories.yml", "skip_broadcast" => false, "version" => "999" }
|
|
|
|
|
|
|
|
|
|
Mrsk::Cli::Main.any_instance.expects(:invoke).with("mrsk:cli:build:deliver", [], invoke_options)
|
|
|
|
|
Mrsk::Cli::Main.any_instance.expects(:invoke).with("mrsk:cli:healthcheck:perform", [], invoke_options)
|
|
|
|
|
@@ -65,7 +65,7 @@ class CliMainTest < CliTestCase
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
test "redeploy with skip_push" do
|
|
|
|
|
invoke_options = { "config_file" => "test/fixtures/deploy_with_accessories.yml", "skip_broadcast" => false, "skip_push" => true }
|
|
|
|
|
invoke_options = { "config_file" => "test/fixtures/deploy_with_accessories.yml", "skip_broadcast" => false, "version" => "999" }
|
|
|
|
|
|
|
|
|
|
Mrsk::Cli::Main.any_instance.expects(:invoke).with("mrsk:cli:build:pull", [], invoke_options)
|
|
|
|
|
Mrsk::Cli::Main.any_instance.expects(:invoke).with("mrsk:cli:healthcheck:perform", [], invoke_options)
|
|
|
|
|
@@ -124,7 +124,7 @@ class CliMainTest < CliTestCase
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
test "config" do
|
|
|
|
|
run_command("config").tap do |output|
|
|
|
|
|
run_command("config", config_file: "deploy_with_accessories").tap do |output|
|
|
|
|
|
config = YAML.load(output)
|
|
|
|
|
|
|
|
|
|
assert_equal ["web"], config[:roles]
|
|
|
|
|
@@ -136,6 +136,32 @@ class CliMainTest < CliTestCase
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
test "config with roles" do
|
|
|
|
|
run_command("config", config_file: "deploy_with_roles").tap do |output|
|
|
|
|
|
config = YAML.load(output)
|
|
|
|
|
|
|
|
|
|
assert_equal ["web", "workers"], config[:roles]
|
|
|
|
|
assert_equal ["1.1.1.1", "1.1.1.2", "1.1.1.3", "1.1.1.4"], config[:hosts]
|
|
|
|
|
assert_equal "999", config[:version]
|
|
|
|
|
assert_equal "registry.digitalocean.com/dhh/app", config[:repository]
|
|
|
|
|
assert_equal "registry.digitalocean.com/dhh/app:999", config[:absolute_image]
|
|
|
|
|
assert_equal "app-999", config[:service_with_version]
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
test "config with destination" do
|
|
|
|
|
run_command("config", "-d", "world", config_file: "deploy_for_dest").tap do |output|
|
|
|
|
|
config = YAML.load(output)
|
|
|
|
|
|
|
|
|
|
assert_equal ["web"], config[:roles]
|
|
|
|
|
assert_equal ["1.1.1.1", "1.1.1.2"], config[:hosts]
|
|
|
|
|
assert_equal "999", config[:version]
|
|
|
|
|
assert_equal "registry.digitalocean.com/dhh/app", config[:repository]
|
|
|
|
|
assert_equal "registry.digitalocean.com/dhh/app:999", config[:absolute_image]
|
|
|
|
|
assert_equal "app-999", config[:service_with_version]
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
test "init" do
|
|
|
|
|
Pathname.any_instance.expects(:exist?).returns(false).twice
|
|
|
|
|
FileUtils.stubs(:mkdir_p)
|
|
|
|
|
@@ -207,12 +233,12 @@ class CliMainTest < CliTestCase
|
|
|
|
|
|
|
|
|
|
assert_match /docker container stop app-mysql/, output
|
|
|
|
|
assert_match /docker container prune --force --filter label=service=app-mysql/, output
|
|
|
|
|
assert_match /docker image prune --all --force --filter label=service=app-mysql/, output
|
|
|
|
|
assert_match /docker image rm --force mysql/, output
|
|
|
|
|
assert_match /rm -rf app-mysql/, output
|
|
|
|
|
|
|
|
|
|
assert_match /docker container stop app-redis/, output
|
|
|
|
|
assert_match /docker container prune --force --filter label=service=app-redis/, output
|
|
|
|
|
assert_match /docker image prune --all --force --filter label=service=app-redis/, output
|
|
|
|
|
assert_match /docker image rm --force redis/, output
|
|
|
|
|
assert_match /rm -rf app-redis/, output
|
|
|
|
|
|
|
|
|
|
assert_match /docker logout/, output
|
|
|
|
|
@@ -225,7 +251,7 @@ class CliMainTest < CliTestCase
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
def run_command(*command)
|
|
|
|
|
stdouted { Mrsk::Cli::Main.start([*command, "-c", "test/fixtures/deploy_with_accessories.yml"]) }
|
|
|
|
|
def run_command(*command, config_file: "deploy_with_accessories")
|
|
|
|
|
stdouted { Mrsk::Cli::Main.start([*command, "-c", "test/fixtures/#{config_file}.yml"]) }
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|