Class: Bait::Build
Instance Method Summary
collapse
#check_for_simplecov, #convert_paths, #coverage_dir, #simplecov_html_path
#bait_dir, #cleanup!, #clone_path, #cloned?, #passed?, #queued?, #sandbox_directory, #script
#all, extended, #id_list_key, #ids, #ids=, #last
Instance Method Details
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# File 'lib/bait/build.rb', line 88
def clone!
return if cloned?
unless Dir.exists?(sandbox_directory)
FileUtils.mkdir_p sandbox_directory
end
begin
Git.clone(clone_url, name, :path => sandbox_directory)
rescue => ex
msg = "Failed to clone #{clone_url}"
self.output << "#{msg}\n\n#{ex.message}\n\n#{ex.backtrace.join("\n")}"
self.status = "failed to clone"
self.save
end
end
|
#enter_phase(name) ⇒ Object
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/bait/build.rb', line 56
def enter_phase name
Bait::Phase.new(self.script(name)).on(:init) do
self.broadcast(:status, "phase: #{name}")
end.on(:output) do |line|
self.output << line
self.broadcast(:output, line)
end.on(:missing) do |message|
self.output << message
self.broadcast(:status, "missing: #{name}")
self.save
end.on(:done) do |zerostatus|
unless self.status == "failed"
if zerostatus
self.status = "passed"
else
self.status = "failed"
end
self.save
check_for_simplecov
end
self.broadcast(:status, self.status)
end.run!
end
|
#integrate_later ⇒ Object
80
81
82
83
84
85
86
|
# File 'lib/bait/build.rb', line 80
def integrate_later
self.status = "queued"
self.output = ""
self.save
Bait::Integrator.new.async.perform(self.id) unless Bait.env == "test"
self
end
|
52
53
54
|
# File 'lib/bait/build.rb', line 52
def phases
YAML.load_file(File.join(self.bait_dir, "config.yml"))
end
|
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/bait/build.rb', line 39
def summary
branch = self.ref ? self.ref.split('/').last : "n/a"
output = %{#{self.name} (#{branch}) #{self.status}}
case self.status
when "passed"
output.green
when "failed"
output.red
else
output
end
end
|