Ensure that old API v1 generates still the same output
This commit is contained in:
parent
c70e9f2ed1
commit
b7d6bb9763
|
@ -45,7 +45,25 @@ module Ci
|
|||
expose :artifacts_expire_at, if: ->(build, _) { build.artifacts? }
|
||||
|
||||
expose :options do |model|
|
||||
model.options
|
||||
options = model.options
|
||||
|
||||
# This part ensures that output of old API is still the same after adding support
|
||||
# for extended docker configuration options, used by new API
|
||||
#
|
||||
# I'm leaving this here, not in the model, because it should be removed at the same time
|
||||
# when old API will be removed (planned for August 2017).
|
||||
options[:image] = options[:image][:name] if options[:image].present? && options[:image].is_a?(Hash)
|
||||
if options[:services].present?
|
||||
options[:services].map! do |service|
|
||||
if service.is_a?(Hash)
|
||||
service[:name]
|
||||
else
|
||||
service
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
options
|
||||
end
|
||||
|
||||
expose :timeout do |model|
|
||||
|
|
|
@ -137,6 +137,18 @@ describe Ci::API::Builds do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when docker configuration options are used' do
|
||||
let!(:build) { create(:ci_build, :extended_options, pipeline: pipeline, name: 'spinach', stage: 'test', stage_idx: 0) }
|
||||
|
||||
it 'starts a build' do
|
||||
register_builds info: { platform: :darwin }
|
||||
|
||||
expect(response).to have_http_status(201)
|
||||
expect(json_response['options']['image']).to eq('ruby:2.1')
|
||||
expect(json_response['options']['services']).to eq(['postgres', 'docker:dind'])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when builds are finished' do
|
||||
|
|
Loading…
Reference in New Issue