travis-api/lib/travis/testing/scenario.rb
Aakriti Gupta 65f1a29d86 Move travis-core files from /vendor to /lib.
- Re-factor
- Remove code for notifications
- Remove addons
- Remove travis-core gem.
- Ignore logs directory only
- Move core tests to spec/lib
2016-07-20 11:22:25 +02:00

116 lines
4.8 KiB
Ruby

module Scenario
class << self
def default
minimal, enginex = repositories :minimal, :enginex
build :repository => minimal,
:owner => minimal.owner,
:number => 1,
:config => { 'rvm' => ['1.8.7', '1.9.2'], 'gemfile' => ['test/Gemfile.rails-2.3.x', 'test/Gemfile.rails-3.0.x'] },
:state => 'failed',
:started_at => '2010-11-12 12:00:00',
:finished_at => '2010-11-12 12:00:10',
:commit => {
:commit => '1a738d9d6f297c105ae2',
:ref => 'refs/heads/develop',
:branch => 'master',
:message => 'add Gemfile',
:committer_name => 'Sven Fuchs',
:committer_email => 'svenfuchs@artweb-design.de',
:committed_at => '2010-11-12 11:50:00',
},
:jobs => [
{ :owner => minimal.owner, :log => Log.new(:content => 'minimal log 1'), :worker => 'ruby3.worker.travis-ci.org:travis-ruby-4' }
]
build :repository => minimal,
:owner => minimal.owner,
:number => 2,
:config => { 'rvm' => ['1.8.7', '1.9.2'], 'gemfile' => ['test/Gemfile.rails-2.3.x', 'test/Gemfile.rails-3.0.x'] },
:state => 'passed',
:started_at => '2010-11-12 12:30:00',
:finished_at => '2010-11-12 12:30:20',
:commit => {
:commit => '91d1b7b2a310131fe3f8',
:ref => 'refs/heads/master',
:branch => 'master',
:message => 'Bump to 0.0.22',
:committer_name => 'Sven Fuchs',
:committer_email => 'svenfuchs@artweb-design.de',
:committed_at => '2010-11-12 12:25:00',
},
:jobs => [
{ :owner => minimal.owner, :log => Log.new(:content => 'minimal log 2'), :worker => 'ruby3.worker.travis-ci.org:travis-ruby-4' }
]
build :repository => minimal,
:owner => minimal.owner,
:number => '3',
:config => { 'rvm' => ['1.8.7', '1.9.2'], 'gemfile' => ['test/Gemfile.rails-2.3.x', 'test/Gemfile.rails-3.0.x'] },
:state => 'configured',
:started_at => '2010-11-12 13:00:00',
:finished_at => nil,
:commit => {
:commit => 'add057e66c3e1d59ef1f',
:ref => 'refs/heads/master',
:branch => 'master',
:message => 'unignore Gemfile.lock',
:committed_at => '2010-11-12 12:55:00',
:committer_name => 'Sven Fuchs',
:committer_email => 'svenfuchs@artweb-design.de',
},
:jobs => [
{ :owner => minimal.owner, :log => Log.new(:content => 'minimal log 3.1'), :worker => 'ruby3.worker.travis-ci.org:travis-ruby-4' },
{ :owner => minimal.owner, :log => Log.new(:content => 'minimal log 3.2'), :worker => 'ruby3.worker.travis-ci.org:travis-ruby-4' },
{ :owner => minimal.owner, :log => Log.new(:content => 'minimal log 3.3'), :worker => 'ruby3.worker.travis-ci.org:travis-ruby-4' },
{ :owner => minimal.owner, :log => Log.new(:content => 'minimal log 3.4'), :worker => 'ruby3.worker.travis-ci.org:travis-ruby-4' }
]
build :repository => enginex,
:owner => enginex.owner,
:number => 1,
:state => 'failes',
:started_at => '2010-11-11 12:00:00',
:finished_at => '2010-11-11 12:00:05',
:commit => {
:commit => '565294c05913cfc23230',
:branch => 'master',
:ref => 'refs/heads/master',
:message => 'Update Capybara',
:author_name => 'Jose Valim',
:author_email => 'jose@email.com',
:committer_name => 'Jose Valim',
:committer_email => 'jose@email.com',
:committed_at => '2010-11-11 11:55:00',
},
:jobs => [
{ :owner => enginex.owner, :log => Log.new(:content => 'enginex log 1'), :worker => 'ruby3.worker.travis-ci.org:travis-ruby-4' }
]
[minimal, enginex]
end
def repositories(*names)
names.map { |name| Factory(name) }
end
def build(attributes)
commit = attributes.delete(:commit)
jobs = attributes.delete(:jobs)
commit = Factory(:commit, commit)
build = Factory(:build, attributes.merge(:commit => commit))
build.matrix.each_with_index do |job, ix|
job.update_attributes!(jobs[ix] || {})
end
if build.finished?
keys = %w(id number state finished_at started_at)
attributes = keys.inject({}) { |result, key| result.merge(:"last_build_#{key}" => build.send(key)) }
build.repository.update_attributes!(attributes)
end
end
end
end