Fix builder registry cache when using default registry

This commit is contained in:
Liubomyr Manastyretskyi
2023-08-13 12:03:31 +03:00
parent aa89ededde
commit 6774675547
2 changed files with 22 additions and 6 deletions

View File

@@ -96,12 +96,20 @@ class Mrsk::Configuration::Builder
@options["cache"]&.fetch("image", nil) || "#{@image}-build-cache" @options["cache"]&.fetch("image", nil) || "#{@image}-build-cache"
end end
def cache_image_ref
if @server.present?
"#{@server}/#{cache_image}"
else
cache_image
end
end
def cache_from_config_for_gha def cache_from_config_for_gha
"type=gha" "type=gha"
end end
def cache_from_config_for_registry def cache_from_config_for_registry
[ "type=registry", "ref=#{@server}/#{cache_image}" ].compact.join(",") [ "type=registry", "ref=#{cache_image_ref}" ].compact.join(",")
end end
def cache_to_config_for_gha def cache_to_config_for_gha
@@ -109,6 +117,6 @@ class Mrsk::Configuration::Builder
end end
def cache_to_config_for_registry def cache_to_config_for_registry
[ "type=registry", @options["cache"]&.fetch("options", nil), "ref=#{@server}/#{cache_image}" ].compact.join(",") [ "type=registry", @options["cache"]&.fetch("options", nil), "ref=#{cache_image_ref}" ].compact.join(",")
end end
end end

View File

@@ -98,15 +98,23 @@ class ConfigurationBuilderTest < ActiveSupport::TestCase
test "setting registry cache" do test "setting registry cache" do
@deploy_with_builder_option[:builder] = { "cache" => { "type" => "registry", "options" => "mode=max,image-manifest=true,oci-mediatypes=true" } } @deploy_with_builder_option[:builder] = { "cache" => { "type" => "registry", "options" => "mode=max,image-manifest=true,oci-mediatypes=true" } }
assert_equal "type=registry,ref=/dhh/app-build-cache", @config_with_builder_option.builder.cache_from assert_equal "type=registry,ref=dhh/app-build-cache", @config_with_builder_option.builder.cache_from
assert_equal "type=registry,mode=max,image-manifest=true,oci-mediatypes=true,ref=/dhh/app-build-cache", @config_with_builder_option.builder.cache_to assert_equal "type=registry,mode=max,image-manifest=true,oci-mediatypes=true,ref=dhh/app-build-cache", @config_with_builder_option.builder.cache_to
end
test "setting registry cache when using a custom registry" do
@config_with_builder_option.registry["server"] = "registry.example.com"
@deploy_with_builder_option[:builder] = { "cache" => { "type" => "registry", "options" => "mode=max,image-manifest=true,oci-mediatypes=true" } }
assert_equal "type=registry,ref=registry.example.com/dhh/app-build-cache", @config_with_builder_option.builder.cache_from
assert_equal "type=registry,mode=max,image-manifest=true,oci-mediatypes=true,ref=registry.example.com/dhh/app-build-cache", @config_with_builder_option.builder.cache_to
end end
test "setting registry cache with image" do test "setting registry cache with image" do
@deploy_with_builder_option[:builder] = { "cache" => { "type" => "registry", "image" => "mrsk", "options" => "mode=max" } } @deploy_with_builder_option[:builder] = { "cache" => { "type" => "registry", "image" => "mrsk", "options" => "mode=max" } }
assert_equal "type=registry,ref=/mrsk", @config_with_builder_option.builder.cache_from assert_equal "type=registry,ref=mrsk", @config_with_builder_option.builder.cache_from
assert_equal "type=registry,mode=max,ref=/mrsk", @config_with_builder_option.builder.cache_to assert_equal "type=registry,mode=max,ref=mrsk", @config_with_builder_option.builder.cache_to
end end
test "args" do test "args" do