Allow deploy/deliver without building and pushing the image

This commit is contained in:
Samuel Sieg
2023-03-10 11:26:35 +01:00
parent 3026a92c98
commit 4bf77ccd1b
4 changed files with 42 additions and 9 deletions

View File

@@ -1,10 +1,31 @@
require_relative "cli_test_case"
class CliBuildTest < CliTestCase
test "deliver" do
run_command("deliver").tap do |output|
assert_match /docker buildx build --push --platform linux\/amd64,linux\/arm64 --builder mrsk-app-multiarch -t dhh\/app:999 -t dhh\/app:latest --label service="app" --file Dockerfile \. as .*\@localhost/, output
assert_match /docker image rm --force dhh\/app:999 on 1\.1\.1\.2/, output
assert_match /docker pull dhh\/app:999 on 1\.1\.1\.1/, output
end
end
test "deliver without push" do
run_command("deliver", "--skip-push").tap do |output|
assert_match /docker image rm --force dhh\/app:999 on 1\.1\.1\.2/, output
assert_match /docker pull dhh\/app:999 on 1\.1\.1\.1/, output
end
end
test "push" do
run_command("push").tap do |output|
assert_match /docker buildx build --push --platform linux\/amd64,linux\/arm64 --builder mrsk-app-multiarch -t dhh\/app:999 -t dhh\/app:latest --label service="app" --file Dockerfile \. as .*\@localhost/, output
end
end
test "pull" do
run_command("pull").tap do |output|
assert_match /docker image rm --force dhh\/app:999/, output
assert_match /docker pull dhh\/app:999/, output
assert_match /docker image rm --force dhh\/app:999 on 1\.1\.1\.2/, output
assert_match /docker pull dhh\/app:999 on 1\.1\.1\.1/, output
end
end

View File

@@ -9,7 +9,17 @@ require "mrsk"
ActiveSupport::LogSubscriber.logger = ActiveSupport::Logger.new(STDOUT) if ENV["VERBOSE"]
# Applies to remote commands only
SSHKit.config.backend = SSHKit::Backend::Printer
# Ensure local commands use the printer backend too
module SSHKit
module DSL
def run_locally(&block)
SSHKit::Backend::Printer.new(SSHKit::Host.new(:local), &block).run
end
end
end
class ActiveSupport::TestCase
end