Make entrypoint and command keys to be array of strings
This commit is contained in:
parent
8513072e96
commit
dcdf2a8bc5
5 changed files with 25 additions and 16 deletions
|
@ -15,7 +15,7 @@ module Gitlab
|
|||
validates :config, allowed_keys: ALLOWED_KEYS
|
||||
|
||||
validates :name, type: String, presence: true
|
||||
validates :entrypoint, type: String, allow_nil: true
|
||||
validates :entrypoint, array_of_strings: true, allow_nil: true
|
||||
end
|
||||
|
||||
def hash?
|
||||
|
|
|
@ -15,8 +15,8 @@ module Gitlab
|
|||
validates :config, allowed_keys: ALLOWED_KEYS
|
||||
|
||||
validates :name, type: String, presence: true
|
||||
validates :entrypoint, type: String, allow_nil: true
|
||||
validates :command, type: String, allow_nil: true
|
||||
validates :entrypoint, array_of_strings: true, allow_nil: true
|
||||
validates :command, array_of_strings: true, allow_nil: true
|
||||
validates :alias, type: String, allow_nil: true
|
||||
end
|
||||
|
||||
|
|
|
@ -598,8 +598,10 @@ module Ci
|
|||
describe "Image and service handling" do
|
||||
context "when extended docker configuration is used" do
|
||||
it "returns image and service when defined" do
|
||||
config = YAML.dump({ image: { name: "ruby:2.1" },
|
||||
services: ["mysql", { name: "docker:dind", alias: "docker" }],
|
||||
config = YAML.dump({ image: { name: "ruby:2.1", entrypoint: ["/usr/local/bin/init", "run"] },
|
||||
services: ["mysql", { name: "docker:dind", alias: "docker",
|
||||
entrypoint: ["/usr/local/bin/init", "run"],
|
||||
command: ["/usr/local/bin/init", "run"] }],
|
||||
before_script: ["pwd"],
|
||||
rspec: { script: "rspec" } })
|
||||
|
||||
|
@ -614,8 +616,10 @@ module Ci
|
|||
coverage_regex: nil,
|
||||
tag_list: [],
|
||||
options: {
|
||||
image: { name: "ruby:2.1" },
|
||||
services: [{ name: "mysql" }, { name: "docker:dind", alias: "docker" }]
|
||||
image: { name: "ruby:2.1", entrypoint: ["/usr/local/bin/init", "run"] },
|
||||
services: [{ name: "mysql" },
|
||||
{ name: "docker:dind", alias: "docker", entrypoint: ["/usr/local/bin/init", "run"],
|
||||
command: ["/usr/local/bin/init", "run"] }]
|
||||
},
|
||||
allow_failure: false,
|
||||
when: "on_success",
|
||||
|
@ -628,8 +632,11 @@ module Ci
|
|||
config = YAML.dump({ image: "ruby:2.1",
|
||||
services: ["mysql"],
|
||||
before_script: ["pwd"],
|
||||
rspec: { image: { name: "ruby:2.5" },
|
||||
services: [{ name: "postgresql", alias: "db-pg" }, "docker:dind"], script: "rspec" } })
|
||||
rspec: { image: { name: "ruby:2.5", entrypoint: ["/usr/local/bin/init", "run"] },
|
||||
services: [{ name: "postgresql", alias: "db-pg",
|
||||
entrypoint: ["/usr/local/bin/init", "run"],
|
||||
command: ["/usr/local/bin/init", "run"] }, "docker:dind"],
|
||||
script: "rspec" } })
|
||||
|
||||
config_processor = GitlabCiYamlProcessor.new(config, path)
|
||||
|
||||
|
@ -642,8 +649,10 @@ module Ci
|
|||
coverage_regex: nil,
|
||||
tag_list: [],
|
||||
options: {
|
||||
image: { name: "ruby:2.5" },
|
||||
services: [{ name: "postgresql", alias: "db-pg" }, { name: "docker:dind" }]
|
||||
image: { name: "ruby:2.5", entrypoint: ["/usr/local/bin/init", "run"] },
|
||||
services: [{ name: "postgresql", alias: "db-pg", entrypoint: ["/usr/local/bin/init", "run"],
|
||||
command: ["/usr/local/bin/init", "run"]},
|
||||
{ name: "docker:dind" }]
|
||||
},
|
||||
allow_failure: false,
|
||||
when: "on_success",
|
||||
|
|
|
@ -38,7 +38,7 @@ describe Gitlab::Ci::Config::Entry::Image do
|
|||
end
|
||||
|
||||
context 'when configuration is a hash' do
|
||||
let(:config) { { name: 'ruby:2.2', entrypoint: '/bin/sh' } }
|
||||
let(:config) { { name: 'ruby:2.2', entrypoint: ['/bin/sh', 'run'] } }
|
||||
|
||||
describe '#value' do
|
||||
it 'returns image hash' do
|
||||
|
@ -66,7 +66,7 @@ describe Gitlab::Ci::Config::Entry::Image do
|
|||
|
||||
describe '#entrypoint' do
|
||||
it "returns image's entrypoint" do
|
||||
expect(entry.entrypoint).to eq '/bin/sh'
|
||||
expect(entry.entrypoint).to eq ['/bin/sh', 'run']
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -43,7 +43,7 @@ describe Gitlab::Ci::Config::Entry::Service do
|
|||
|
||||
context 'when configuration is a hash' do
|
||||
let(:config) do
|
||||
{ name: 'postgresql:9.5', alias: 'db', command: 'cmd', entrypoint: '/bin/sh' }
|
||||
{ name: 'postgresql:9.5', alias: 'db', command: ['cmd', 'run'], entrypoint: ['/bin/sh', 'run'] }
|
||||
end
|
||||
|
||||
describe '#valid?' do
|
||||
|
@ -72,13 +72,13 @@ describe Gitlab::Ci::Config::Entry::Service do
|
|||
|
||||
describe '#command' do
|
||||
it "returns service's command" do
|
||||
expect(entry.command).to eq 'cmd'
|
||||
expect(entry.command).to eq ['cmd', 'run']
|
||||
end
|
||||
end
|
||||
|
||||
describe '#entrypoint' do
|
||||
it "returns service's entrypoint" do
|
||||
expect(entry.entrypoint).to eq '/bin/sh'
|
||||
expect(entry.entrypoint).to eq ['/bin/sh', 'run']
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue