diff options
author | Francisco Javier López <fjlopez@gitlab.com> | 2019-06-01 12:37:29 +0200 |
---|---|---|
committer | Francisco Javier López <fjlopez@gitlab.com> | 2019-06-01 12:37:29 +0200 |
commit | 7eafe90b90b41e1111bb64d4cc8d8004287da3d3 (patch) | |
tree | 0c22f92f56230c114632927769b2f0eb56a050e9 | |
parent | 2ad5b30b6c02a3e3f84275121a709f5de75dac48 (diff) | |
download | gitlab-ce-7eafe90b90b41e1111bb64d4cc8d8004287da3d3.tar.gz |
Fix port validations in .gitlab-webide.ymlce-fj-11886-fix-port-validation
-rw-r--r-- | lib/gitlab/ci/config/entry/image.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/ci/config/entry/service.rb | 3 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/config/entry/service_spec.rb | 10 |
3 files changed, 14 insertions, 1 deletions
diff --git a/lib/gitlab/ci/config/entry/image.rb b/lib/gitlab/ci/config/entry/image.rb index 0beeb44c272..21c42857895 100644 --- a/lib/gitlab/ci/config/entry/image.rb +++ b/lib/gitlab/ci/config/entry/image.rb @@ -24,7 +24,7 @@ module Gitlab end entry :ports, Entry::Ports, - description: 'Ports used expose the image' + description: 'Ports used to expose the image' attributes :ports diff --git a/lib/gitlab/ci/config/entry/service.rb b/lib/gitlab/ci/config/entry/service.rb index 084fa4047a4..8d16371e857 100644 --- a/lib/gitlab/ci/config/entry/service.rb +++ b/lib/gitlab/ci/config/entry/service.rb @@ -24,6 +24,9 @@ module Gitlab validates :alias, type: String, presence: true, unless: ->(record) { record.ports.blank? } end + entry :ports, Entry::Ports, + description: 'Ports used to expose the service' + def alias value[:alias] end diff --git a/spec/lib/gitlab/ci/config/entry/service_spec.rb b/spec/lib/gitlab/ci/config/entry/service_spec.rb index d5bd139b5f1..d31866a1987 100644 --- a/spec/lib/gitlab/ci/config/entry/service_spec.rb +++ b/spec/lib/gitlab/ci/config/entry/service_spec.rb @@ -112,6 +112,16 @@ describe Gitlab::Ci::Config::Entry::Service do it 'is valid' do expect(entry).to be_valid end + + context 'when unknown port keys detected' do + let(:ports) { [{ number: 80, invalid_key: 'foo' }] } + + it 'is not valid' do + expect(entry).not_to be_valid + expect(entry.errors.first) + .to match /port config contains unknown keys: invalid_key/ + end + end end describe '#ports' do |