Just use the url from options, not saving it as a column

This commit is contained in:
Lin Jen-Shin 2017-06-01 18:29:11 +08:00
parent 20dcd522f0
commit 4f8a1c0d4c
10 changed files with 10 additions and 34 deletions

View File

@ -26,10 +26,6 @@ module Ci
validates :coverage, numericality: true, allow_blank: true
validates :ref, presence: true
validates :environment_url,
length: { maximum: 255 },
allow_nil: true,
addressable_url: true
scope :unstarted, ->() { where(runner_id: nil) }
scope :ignore_failures, ->() { where(allow_failure: false) }
@ -147,6 +143,10 @@ module Ci
environment_url
end
def environment_url
options.dig(:environment, :url)
end
def has_environment?
environment.present?
end

View File

@ -2,8 +2,8 @@ module Ci
class RetryBuildService < ::BaseService
CLONE_ACCESSORS = %i[pipeline project ref tag options commands name
allow_failure stage stage_idx trigger_request
yaml_variables when environment environment_url
coverage_regex description tag_list].freeze
yaml_variables when environment coverage_regex
description tag_list].freeze
def execute(build)
reprocess!(build).tap do |new_build|

View File

@ -1,9 +0,0 @@
class AddEnvironmentUrlToCiBuilds < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
DOWNTIME = false
def change
add_column(:ci_builds, :environment_url, :string)
end
end

View File

@ -233,7 +233,6 @@ ActiveRecord::Schema.define(version: 20170525174156) do
t.string "coverage_regex"
t.integer "auto_canceled_by_id"
t.boolean "retried"
t.string "environment_url"
end
add_index "ci_builds", ["auto_canceled_by_id"], name: "index_ci_builds_on_auto_canceled_by_id", using: :btree
@ -1493,4 +1492,4 @@ ActiveRecord::Schema.define(version: 20170525174156) do
add_foreign_key "trending_projects", "projects", on_delete: :cascade
add_foreign_key "u2f_registrations", "users"
add_foreign_key "web_hook_logs", "web_hooks", on_delete: :cascade
end
end

View File

@ -61,7 +61,6 @@ module Ci
allow_failure: job[:ignore],
when: job[:when] || 'on_success',
environment: job[:environment_name],
environment_url: job[:environment_url],
coverage_regex: job[:coverage],
yaml_variables: yaml_variables(name),
options: {

View File

@ -141,7 +141,6 @@ module Gitlab
variables: variables_defined? ? variables_value : nil,
environment: environment_defined? ? environment_value : nil,
environment_name: environment_defined? ? environment_value[:name] : nil,
environment_url: environment_defined? ? environment_value[:url] : nil,
coverage: coverage_defined? ? coverage_value : nil,
artifacts: artifacts_value,
after_script: after_script_value,

View File

@ -63,7 +63,6 @@ FactoryGirl.define do
trait :teardown_environment do
environment 'staging'
environment_url 'http://staging.example.com/$CI_JOB_NAME'
options environment: { name: 'staging',
action: 'stop',
url: 'http://staging.example.com/$CI_JOB_NAME' }

View File

@ -105,7 +105,6 @@ module Ci
allow_failure: false,
when: "on_success",
environment: nil,
environment_url: nil,
yaml_variables: []
})
end
@ -524,7 +523,6 @@ module Ci
allow_failure: false,
when: "on_success",
environment: nil,
environment_url: nil,
yaml_variables: []
})
end
@ -554,7 +552,6 @@ module Ci
allow_failure: false,
when: "on_success",
environment: nil,
environment_url: nil,
yaml_variables: []
})
end
@ -801,7 +798,6 @@ module Ci
when: "on_success",
allow_failure: false,
environment: nil,
environment_url: nil,
yaml_variables: []
})
end
@ -853,7 +849,6 @@ module Ci
it 'does return production and URL' do
expect(builds.size).to eq(1)
expect(builds.first[:environment]).to eq(environment[:name])
expect(builds.first[:environment_url]).to eq(environment[:url])
expect(builds.first[:options]).to include(environment: environment)
end
@ -866,7 +861,6 @@ module Ci
it 'allows a variable for the port' do
expect(builds.size).to eq(1)
expect(builds.first[:environment]).to eq(environment[:name])
expect(builds.first[:environment_url]).to eq(environment[:url])
expect(builds.first[:options]).to include(environment: environment)
end
end
@ -1007,7 +1001,6 @@ module Ci
when: "on_success",
allow_failure: false,
environment: nil,
environment_url: nil,
yaml_variables: []
})
end
@ -1054,7 +1047,6 @@ module Ci
when: "on_success",
allow_failure: false,
environment: nil,
environment_url: nil,
yaml_variables: []
})
expect(subject.second).to eq({
@ -1068,7 +1060,6 @@ module Ci
when: "on_success",
allow_failure: false,
environment: nil,
environment_url: nil,
yaml_variables: []
})
end

View File

@ -225,7 +225,6 @@ CommitStatus:
- erased_at
- artifacts_expire_at
- environment
- environment_url
- artifacts_size
- when
- yaml_variables

View File

@ -20,7 +20,6 @@ describe Ci::Build, :models do
it { is_expected.to validate_presence_of(:ref) }
it { is_expected.to respond_to(:has_trace?) }
it { is_expected.to respond_to(:trace) }
it { is_expected.to validate_length_of(:environment_url).is_at_most(255) }
describe '#actionize' do
context 'when build is a created' do
@ -435,7 +434,7 @@ describe Ci::Build, :models do
let(:build) do
create(:ci_build,
ref: 'master',
environment_url: 'http://review/$CI_COMMIT_REF_NAME')
options: { environment: { url: 'http://review/$CI_COMMIT_REF_NAME' } })
end
it { is_expected.to eq('http://review/master') }
@ -445,7 +444,7 @@ describe Ci::Build, :models do
let(:build) do
create(:ci_build,
yaml_variables: [{ key: :APP_HOST, value: 'host' }],
environment_url: 'http://review/$APP_HOST')
options: { environment: { url: 'http://review/$APP_HOST' } })
end
it { is_expected.to eq('http://review/host') }
@ -1244,7 +1243,7 @@ describe Ci::Build, :models do
context 'when the URL was set from the job' do
before do
build.update(environment_url: 'http://host/$CI_JOB_NAME')
build.update(options: { environment: { url: 'http://host/$CI_JOB_NAME' } })
end
it_behaves_like 'containing environment variables'