From 32ac59b308a5f86a8c0c5d594aa01bd660fc84bc Mon Sep 17 00:00:00 2001 From: sophia Date: Tue, 15 Sep 2020 17:15:58 -0500 Subject: [PATCH] Seperate out docker testst --- test/vagrant-spec/Vagrantfile.spec | 98 ++++++++++++++++++++---------- 1 file changed, 66 insertions(+), 32 deletions(-) diff --git a/test/vagrant-spec/Vagrantfile.spec b/test/vagrant-spec/Vagrantfile.spec index 571936ae3..911b66cd2 100644 --- a/test/vagrant-spec/Vagrantfile.spec +++ b/test/vagrant-spec/Vagrantfile.spec @@ -8,7 +8,10 @@ GUEST_BOXES = { # 'hashicorp-vagrant/centos-7.4' => '1.0.2', # 'hashicorp-vagrant/windows-10' => '1.0.0', # 'spox/osx-10.12' => '0.0.1' - 'nginx' => 'latest' # docker image +} + +DOCKER_IMAGES = { + 'nginx' => 'latest' } # Host boxes to run vagrant-spec @@ -33,9 +36,11 @@ PLATFORM_SCRIPT_MAPPING = { enabled_providers = ENV.fetch("VAGRANT_SPEC_PROVIDERS", "virtualbox").split(",") # Set what boxes should be used enabled_guests = ENV["VAGRANT_GUEST_BOXES"] ? ENV["VAGRANT_GUEST_BOXES"].split(",") : GUEST_BOXES.keys +enabled_docker_images = ENV["VAGRANT_DOCKER_IMAGES"] ? ENV["VAGRANT_DOCKER_IMAGES"].split(",") : DOCKER_IMAGES.keys enabled_hosts = ENV["VAGRANT_HOST_BOXES"] ? ENV["VAGRANT_HOST_BOXES"].split(",") : HOST_BOXES.keys guest_boxes = Hash[GUEST_BOXES.find_all{|name, version| enabled_guests.include?(name)}.compact] +docker_images = Hash[DOCKER_IMAGES.find_all{|name, version| enabled_docker_images.include?(name)}.compact] host_boxes = Hash[HOST_BOXES.find_all{|name, version| enabled_hosts.include?(name)}.compact] # Grab vagrantcloud token, if available @@ -87,38 +92,67 @@ Vagrant.configure(2) do |global_config| config.vm.provision :shell, path: "./scripts/#{PLATFORM_SCRIPT_MAPPING[platform]}-setup.#{provider_name}.sh", run: "once" end - guest_boxes.each_with_index do |box_info, idx| - guest_box, box_version = box_info - guest_platform = guest_box.split('/').last.sub(/[^a-z]+$/, '') - guest_platform = PLATFORM_SCRIPT_MAPPING[guest_platform] - spec_cmd_args = ENV["VAGRANT_SPEC_ARGS"] - if idx != 0 - spec_cmd_args = "#{spec_cmd_args} --without-component cli/*".strip + if provider_name == "docker" + docker_images.each_with_index do |image_info, idx| + docker_image, _ = image_info + spec_cmd_args = ENV["VAGRANT_SPEC_ARGS"] + if idx != 0 + spec_cmd_args = "#{spec_cmd_args} --without-component cli/*".strip + end + if platform == "windows" + config.vm.provision( + :shell, + path: "./scripts/#{platform}-run.#{provider_name}.ps1", + keep_color: true, + env: { + "VAGRANT_SPEC_ARGS" => "--no-builtin #{spec_cmd_args}".strip, + "VAGRANT_SPEC_DOCKER_IMAGE" => docker_image + } + ) + else + config.vm.provision( + :shell, + path: "./scripts/#{PLATFORM_SCRIPT_MAPPING[platform]}-run.#{provider_name}.sh", + keep_color: true, + env: { + "VAGRANT_SPEC_ARGS" => "--no-builtin #{spec_cmd_args}".strip, + "VAGRANT_SPEC_DOCKER_IMAGE" => docker_image + } + ) + end end - if platform == "windows" - config.vm.provision( - :shell, - path: "./scripts/#{platform}-run.#{provider_name}.ps1", - keep_color: true, - env: { - "VAGRANT_SPEC_ARGS" => "--no-builtin #{spec_cmd_args}".strip, - "VAGRANT_SPEC_BOX" => "c:/vagrant/#{guest_box.sub('/', '_')}.#{provider_name}.#{box_version}.box", - "VAGRANT_SPEC_GUEST_PLATFORM" => guest_platform, - "VAGRANT_SPEC_DOCKER_IMAGE" => guest_box - } - ) - else - config.vm.provision( - :shell, - path: "./scripts/#{PLATFORM_SCRIPT_MAPPING[platform]}-run.#{provider_name}.sh", - keep_color: true, - env: { - "VAGRANT_SPEC_ARGS" => "--no-builtin #{spec_cmd_args}".strip, - "VAGRANT_SPEC_BOX" => "/vagrant/test/vagrant-spec/boxes/#{guest_box.sub('/', '_')}.#{provider_name}.#{box_version}.box", - "VAGRANT_SPEC_GUEST_PLATFORM" => guest_platform, - "VAGRANT_SPEC_DOCKER_IMAGE" => guest_box - } - ) + else + guest_boxes.each_with_index do |box_info, idx| + guest_box, box_version = box_info + guest_platform = guest_box.split('/').last.sub(/[^a-z]+$/, '') + guest_platform = PLATFORM_SCRIPT_MAPPING[guest_platform] + spec_cmd_args = ENV["VAGRANT_SPEC_ARGS"] + if idx != 0 + spec_cmd_args = "#{spec_cmd_args} --without-component cli/*".strip + end + if platform == "windows" + config.vm.provision( + :shell, + path: "./scripts/#{platform}-run.#{provider_name}.ps1", + keep_color: true, + env: { + "VAGRANT_SPEC_ARGS" => "--no-builtin #{spec_cmd_args}".strip, + "VAGRANT_SPEC_BOX" => "c:/vagrant/#{guest_box.sub('/', '_')}.#{provider_name}.#{box_version}.box", + "VAGRANT_SPEC_GUEST_PLATFORM" => guest_platform, + } + ) + else + config.vm.provision( + :shell, + path: "./scripts/#{PLATFORM_SCRIPT_MAPPING[platform]}-run.#{provider_name}.sh", + keep_color: true, + env: { + "VAGRANT_SPEC_ARGS" => "--no-builtin #{spec_cmd_args}".strip, + "VAGRANT_SPEC_BOX" => "/vagrant/test/vagrant-spec/boxes/#{guest_box.sub('/', '_')}.#{provider_name}.#{box_version}.box", + "VAGRANT_SPEC_GUEST_PLATFORM" => guest_platform, + } + ) + end end end end