Class: Bait::Build

Inherits:
Object show all
Includes:
BuildHelper, SimpleCovSupport
Defined in:
lib/bait/build.rb

Instance Method Summary collapse

Methods included from SimpleCovSupport

#check_for_simplecov, #convert_paths, #coverage_dir, #simplecov_html_path

Methods included from BuildHelper

#bait_dir, #cleanup!, #clone_path, #cloned?, #passed?, #queued?, #sandbox_directory, #script

Methods included from SimpleQuery

#all, extended, #id_list_key, #ids, #ids=, #last

Instance Method Details

#clone!Object



75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/bait/build.rb', line 75

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



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/bait/build.rb', line 43

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_laterObject



67
68
69
70
71
72
73
# File 'lib/bait/build.rb', line 67

def integrate_later
  self.status = "queued"
  self.output = ""
  self.save
  Bait::Integrator.new.async.perform(self.id) unless Bait.env == "test"
  self
end

#phasesObject



39
40
41
# File 'lib/bait/build.rb', line 39

def phases
  YAML.load_file(File.join(self.bait_dir, "config.yml"))
end