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
39
40
41
|
# File 'lib/bait/build.rb', line 39
def branch
self.ref.gsub('refs/heads/', '')
end
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
# File 'lib/bait/build.rb', line 91
def clone!
return if cloned?
unless Dir.exists?(sandbox_directory)
FileUtils.mkdir_p sandbox_directory
end
begin
g = Git.clone(clone_url, name, :path => sandbox_directory)
if g.branch.name != self.branch
g.checkout("origin/#{self.branch}")
end
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/bait/build.rb', line 59
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
83
84
85
86
87
88
89
|
# File 'lib/bait/build.rb', line 83
def integrate_later
self.status = "queued"
self.output = ""
self.save
Bait::Integrator.new.async.perform(self.id) unless Bait.env == "test"
self
end
|
55
56
57
|
# File 'lib/bait/build.rb', line 55
def phases
YAML.load_file(File.join(self.bait_dir, "config.yml"))
end
|
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/bait/build.rb', line 43
def summary
output = %{#{self.name} (#{self.branch}) #{self.status}}
case self.status
when "passed"
output.green
when "failed"
output.red
else
output
end
end
|