diff options
-rw-r--r-- | app/models/build.rb | 12 | ||||
-rw-r--r-- | app/models/jobs/travis_job.rb | 6 | ||||
-rw-r--r-- | app/services/create_travis_jobs_service.rb | 20 |
3 files changed, 13 insertions, 25 deletions
diff --git a/app/models/build.rb b/app/models/build.rb index d951a66..63ea016 100644 --- a/app/models/build.rb +++ b/app/models/build.rb @@ -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 diff --git a/app/models/jobs/travis_job.rb b/app/models/jobs/travis_job.rb index 0667c30..4bb9aff 100644 --- a/app/models/jobs/travis_job.rb +++ b/app/models/jobs/travis_job.rb @@ -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' @@ -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 } diff --git a/app/services/create_travis_jobs_service.rb b/app/services/create_travis_jobs_service.rb index 4df1b2a..8fef4bd 100644 --- a/app/services/create_travis_jobs_service.rb +++ b/app/services/create_travis_jobs_service.rb @@ -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 @@ -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] || {} @@ -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| @@ -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 |