Sha256: 562484f4d11c58886adf9c88e5964645d4dbe7ac4a85615e8a64dc77fa036f87

Contents?: true

Size: 884 Bytes

Versions: 1

Compression:

Stored size: 884 Bytes

Contents

require 'net/http'
require "uri"

module Perkins
  class BuildWorker

    include Sidekiq::Worker

    def perform(repo_id, sha, branch)
      repo = Perkins::Repo.find(repo_id)
      #it actually clone repo and instantiates git data
      repo.load_git

      return if repo.runner.blank?

      repo.runner.sha    = sha
      repo.runner.branch = branch

      send_sse({repo: {id: repo.id, name: repo.name , status: "start"} })

      repo.runner.run(sha)

      report = repo.build_reports.find_by(sha: sha)
      send_sse({repo: {id: repo.id, name: repo.name , status: "stop", report: report } })
    end

    def send_sse(msg)
      url = "#{Perkins::Application.instance.sse_endpoint}/sse"
      puts "send sse post to #{url} with msg: #{msg.to_json}".pink
      postData = Net::HTTP.post_form(
        URI.parse(url),
        {'msg'=> msg.to_json }
      )
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
perkins-0.0.2 lib/perkins/build_worker.rb