From 67a2d5e7ca7754830d9375ce55958a921ecadbb2 Mon Sep 17 00:00:00 2001 From: Donal McBreen Date: Wed, 3 Apr 2024 10:36:32 +0100 Subject: [PATCH] Include error message on failure --- lib/kamal/cli/base.rb | 4 ++-- test/cli/build_test.rb | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/kamal/cli/base.rb b/lib/kamal/cli/base.rb index 4d3c19eb..206f63a4 100644 --- a/lib/kamal/cli/base.rb +++ b/lib/kamal/cli/base.rb @@ -158,8 +158,8 @@ module Kamal::Cli say "Running the #{hook} hook...", :magenta run_locally do execute *KAMAL.hook.run(hook, **details, **extra_details) - rescue SSHKit::Command::Failed - raise HookError.new("Hook `#{hook}` failed") + rescue SSHKit::Command::Failed => e + raise HookError.new("Hook `#{hook}` failed:\n#{e.message}") end end end diff --git a/test/cli/build_test.rb b/test/cli/build_test.rb index 9929b78b..5c3e3680 100644 --- a/test/cli/build_test.rb +++ b/test/cli/build_test.rb @@ -51,7 +51,8 @@ class CliBuildTest < CliTestCase test "push pre-build hook failure" do fail_hook("pre-build") - assert_raises(Kamal::Cli::HookError) { run_command("push") } + error = assert_raises(Kamal::Cli::HookError) { run_command("push") } + assert_equal "Hook `pre-build` failed:\nfailed", error.message assert @executions.none? { |args| args[0..2] == [ :docker, :buildx, :build ] } end