Adds support for Docker Build Cloud
This commit is contained in:
@@ -235,6 +235,12 @@ class CliBuildTest < CliTestCase
|
||||
end
|
||||
end
|
||||
|
||||
test "create cloud" do
|
||||
run_command("create", fixture: :with_cloud_builder).tap do |output|
|
||||
assert_match /docker buildx create --driver cloud example_org\/cloud_builder/, output
|
||||
end
|
||||
end
|
||||
|
||||
test "create with error" do
|
||||
stub_setup
|
||||
SSHKit::Backend::Abstract.any_instance.stubs(:execute)
|
||||
@@ -252,6 +258,12 @@ class CliBuildTest < CliTestCase
|
||||
end
|
||||
end
|
||||
|
||||
test "remove cloud" do
|
||||
run_command("remove", fixture: :with_cloud_builder).tap do |output|
|
||||
assert_match /docker buildx rm cloud-example_org-cloud_builder/, output
|
||||
end
|
||||
end
|
||||
|
||||
test "details" do
|
||||
SSHKit::Backend::Abstract.any_instance.stubs(:capture)
|
||||
.with(:docker, :context, :ls, "&&", :docker, :buildx, :ls)
|
||||
|
||||
@@ -61,6 +61,14 @@ class CommandsBuilderTest < ActiveSupport::TestCase
|
||||
builder.push.join(" ")
|
||||
end
|
||||
|
||||
test "cloud builder" do
|
||||
builder = new_builder_command(builder: { "arch" => [ "#{local_arch}" ], "driver" => "cloud docker-org-name/builder-name" })
|
||||
assert_equal "cloud", builder.name
|
||||
assert_equal \
|
||||
"docker buildx build --push --platform linux/#{local_arch} --builder cloud-docker-org-name-builder-name -t dhh/app:123 -t dhh/app:latest --label service=\"app\" --file Dockerfile .",
|
||||
builder.push.join(" ")
|
||||
end
|
||||
|
||||
test "build args" do
|
||||
builder = new_builder_command(builder: { "args" => { "a" => 1, "b" => 2 } })
|
||||
assert_equal \
|
||||
|
||||
40
test/fixtures/deploy_with_cloud_builder.yml
vendored
Normal file
40
test/fixtures/deploy_with_cloud_builder.yml
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
service: app
|
||||
image: dhh/app
|
||||
servers:
|
||||
web:
|
||||
- "1.1.1.1"
|
||||
- "1.1.1.2"
|
||||
workers:
|
||||
- "1.1.1.3"
|
||||
- "1.1.1.4"
|
||||
registry:
|
||||
username: user
|
||||
password: pw
|
||||
|
||||
accessories:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
host: 1.1.1.3
|
||||
port: 3306
|
||||
env:
|
||||
clear:
|
||||
MYSQL_ROOT_HOST: '%'
|
||||
secret:
|
||||
- MYSQL_ROOT_PASSWORD
|
||||
files:
|
||||
- test/fixtures/files/my.cnf:/etc/mysql/my.cnf
|
||||
directories:
|
||||
- data:/var/lib/mysql
|
||||
redis:
|
||||
image: redis:latest
|
||||
roles:
|
||||
- web
|
||||
port: 6379
|
||||
directories:
|
||||
- data:/data
|
||||
|
||||
readiness_delay: 0
|
||||
|
||||
builder:
|
||||
arch: <%= Kamal::Utils.docker_arch == "arm64" ? "amd64" : "arm64" %>
|
||||
driver: cloud example_org/cloud_builder
|
||||
Reference in New Issue
Block a user