Sha256: d64b1a1cc72020fe2df4633a3a33c3438290d8d60c94a8fcc6e686ac5b8ee0e4
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
require 'evrone/ci/message' module Evrone module CI module Worker UpdateJobStatus = Struct.new(:app) do include Helper::Logger STARTED = 2 FINISHED = 3 BROKEN = 4 FAILED = 5 def call(env) update_status env.job, STARTED rs = -1 begin rs = app.call env rescue Exception => e env.job.add_to_output("ERROR: #{e.inspect}\n") logger.error("ERROR: #{e.inspect}\n BACKTRACE:\n#{e.backtrace.map{|i| " #{i}" }.join("\n")}") end msg = "\nDone. Your build exited with %s.\n" env.job.add_to_output(msg % rs.abs) case when rs == 0 update_status env.job, FINISHED when rs > 0 update_status env.job, BROKEN when rs < 0 update_status env.job, FAILED end rs end private def update_status(job, status) publish_status create_message(job, status) end def create_message(job, status) tm = Time.now Message::JobStatus.new( build_id: job.message.id, job_id: job.message.job_id, status: status, tm: tm.to_i, tm_usec: tm.usec, matrix: job.message.matrix_keys ) end def publish_status(message) logger.info "delivered job status #{message.inspect}" JobStatusConsumer.publish message end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
evrone-ci-worker-0.2.0.pre3 | lib/evrone/ci/worker/middlewares/update_job_status.rb |