Skip to content
Snippets Groups Projects
Commit c9637daa authored by Valery Sizov's avatar Valery Sizov
Browse files

refactoring STEP 5

parent 560c7feb
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -67,17 +67,11 @@ class Build < ActiveRecord::Base
def retry(build)
new_build = Build.new(status: :pending)
new_build.job_id = build.job_id
new_build.commit_id = build.commit_id
new_build.project_id = build.project_id
new_build.save
if build.job
new_build.commands = build.job.build_commands(build)
new_build.tag_list = build.job.tag_list
else
new_build.commands = build.commands
end
new_build.commands = build.commands
new_build.tag_list = build.job.tag_list
new_build.save
new_build
end
Loading
Loading
Loading
Loading
@@ -39,10 +39,6 @@ eos
nil
end
 
def build_commands(build)
commands
end
def tag_list
tag_list = ['travis', config[:language] || 'ruby', config[:os] || 'linux']
tag_list << "xcode-#{config[:xcode_version] || 'default'}" if config[:language] == 'objective-c'
Loading
Loading
@@ -103,7 +99,7 @@ eos
branch: build.ref,
commit: commit.sha,
commit_range: "#{commit.short_before_sha}..#{commit.short_sha}",
pull_request: false, # not yet supported
pull_request: false,
secure_env_enabled: true,
tag: build.for_tag? ? build.ref : nil
}
Loading
Loading
Loading
Loading
@@ -6,12 +6,9 @@ class CreateTravisJobsService
ref = origin_ref.gsub(/\Arefs\/(tags|heads)\//, '')
tag = origin_ref.start_with?('refs/tags/')
 
raise 'Missing .travis.yml' unless commit.push_data[:ci_yaml_file]
build_config_params = YAML.load commit.push_data[:ci_yaml_file]
ActiveRecord::Base.transaction do
begin
generate_builds(build_config_params, commit.push_data) do |new_data, new_attributes|
generate_builds(commit.push_data) do |new_data, new_attributes|
new_job = find_or_create_job(project, new_attributes)
new_job.execute(commit)
end
Loading
Loading
@@ -36,7 +33,7 @@ class CreateTravisJobsService
job = find_job(project, new_attributes)
 
unless job
job = project.travis_jobs.new()
job = project.travis_jobs.new
job.variables = new_attributes[:env_vars] || []
job.config = new_attributes[:config] || {}
job.matrix_config = new_attributes[:matrix_config] || {}
Loading
Loading
@@ -56,21 +53,22 @@ class CreateTravisJobsService
 
private
 
def generate_builds(build_config_params, data, &block)
raise 'block must be specified' unless block_given?
def generate_builds(push_data, &block)
raise 'Missing .travis.yml' unless commit.push_data[:ci_yaml_file]
build_config_params = YAML.load commit.push_data[:ci_yaml_file]
 
build_config = ::Travis::Model::Build::Config.new(build_config_params, default_options).normalize
 
if branches = build_config[:branches]
if branches[:only]
return unless branches[:only].include? data[:ref]
return unless branches[:only].include? push_data[:ref]
elsif branches[:except]
return if branches[:except].include? data[:ref]
return if branches[:except].include? push_data[:ref]
end
end
 
# omit gh-pages unless specified in branches.only
return if data[:ref] == 'gh-pages' unless build_config[:branches] and build_config[:branches][:only]
return if push_data[:ref] == 'gh-pages' unless build_config[:branches] and build_config[:branches][:only]
 
matrix_build = ::Travis::Model::Build::Config::Matrix.new(build_config, default_options)
matrix_build.expand.each do |expanded_config|
Loading
Loading
@@ -84,7 +82,7 @@ class CreateTravisJobsService
env_vars: []
}
 
block.call(data.dup, matrix_build_data)
block.call(push_data.dup, matrix_build_data)
end
end
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment