From 2d1a0dc9bae64474d0244814c69c81cd7454ac74 Mon Sep 17 00:00:00 2001 From: Daniel Jackson Date: Mon, 22 Jan 2024 09:11:17 +0100 Subject: [PATCH 1/3] Informative message on lock error --- lib/kamal/cli/base.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/kamal/cli/base.rb b/lib/kamal/cli/base.rb index 7cd69fc6..fce1b16e 100644 --- a/lib/kamal/cli/base.rb +++ b/lib/kamal/cli/base.rb @@ -124,7 +124,7 @@ module Kamal::Cli rescue SSHKit::Runner::ExecuteError => e if e.message =~ /cannot create directory/ on(KAMAL.primary_host) { puts capture_with_debug(*KAMAL.lock.status) } - raise LockError, "Deploy lock found" + raise LockError, "Deploy lock found. See https://kamal-deploy.org/docs/commands#checking-and-setting-the-lock" else raise e end From 1ec69d3764764c4d090cd30c1c97d8e9995bb863 Mon Sep 17 00:00:00 2001 From: Daniel Jackson Date: Tue, 23 Jan 2024 08:33:07 +0100 Subject: [PATCH 2/3] Tell user about 'kamal lock help' when deploy fails due to a lock --- lib/kamal/cli/base.rb | 2 +- test/integration/lock_test.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/kamal/cli/base.rb b/lib/kamal/cli/base.rb index fce1b16e..2f63eec5 100644 --- a/lib/kamal/cli/base.rb +++ b/lib/kamal/cli/base.rb @@ -124,7 +124,7 @@ module Kamal::Cli rescue SSHKit::Runner::ExecuteError => e if e.message =~ /cannot create directory/ on(KAMAL.primary_host) { puts capture_with_debug(*KAMAL.lock.status) } - raise LockError, "Deploy lock found. See https://kamal-deploy.org/docs/commands#checking-and-setting-the-lock" + raise LockError, "Deploy lock found. Run 'kamal lock help' for more information" else raise e end diff --git a/test/integration/lock_test.rb b/test/integration/lock_test.rb index c9d88a91..db086251 100644 --- a/test/integration/lock_test.rb +++ b/test/integration/lock_test.rb @@ -10,7 +10,7 @@ class LockTest < IntegrationTest assert_match /Locked by: Deployer at .*\nVersion: #{latest_app_version}\nMessage: Integration Tests/m, status error = kamal :deploy, capture: true, raise_on_error: false - assert_match /Deploy lock found/m, error + assert_match /Deploy lock found. Run 'kamal lock help' for more information/m, error kamal :lock, :release From ad04bb75567b09837b0444fe05024a200e845e36 Mon Sep 17 00:00:00 2001 From: Daniel Jackson Date: Tue, 23 Jan 2024 09:17:15 +0100 Subject: [PATCH 3/3] Show context for lock status message on raise_if_locked --- lib/kamal/cli/base.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/kamal/cli/base.rb b/lib/kamal/cli/base.rb index 2f63eec5..3527a215 100644 --- a/lib/kamal/cli/base.rb +++ b/lib/kamal/cli/base.rb @@ -123,6 +123,7 @@ module Kamal::Cli yield rescue SSHKit::Runner::ExecuteError => e if e.message =~ /cannot create directory/ + say "Deploy lock already in place!", :red on(KAMAL.primary_host) { puts capture_with_debug(*KAMAL.lock.status) } raise LockError, "Deploy lock found. Run 'kamal lock help' for more information" else