class Bait::Build
Public Instance Methods
branch()
click to toggle source
# File lib/bait/build.rb, line 39 def branch self.ref.gsub('refs/heads/', '') end
clone!()
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# 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
phases()
click to toggle source
# File lib/bait/build.rb, line 55 def phases YAML.load_file(File.join(self.bait_dir, "config.yml")) end
summary()
click to toggle source
# 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
Protected Instance Methods
broadcast(attr, *args)
click to toggle source
# File lib/bait/build.rb, line 111 def broadcast attr, *args Bait.broadcast :build, attr, self.id, *args end