Sha256: 6feb37c4d668eeba3298c06d635022a3c4f1619e5fface31ad3445ba15e1da84
Contents?: true
Size: 1.76 KB
Versions: 7
Compression:
Stored size: 1.76 KB
Contents
require 'sinatra/base' require 'docker' require 'baleen' module Baleen class CiServer < Sinatra::Base include Celluloid::IO include Baleen extend Baleen::Default def self.run!(params={}) docker_host = params[:docker_host] docker_port = params[:docker_port] project_file = params[:project_file] || default_project_file log_level = params[:log_level] || default_log_level Docker.url = "http://#{docker_host}:#{docker_port}" Baleen::Project.load_project(project_file) Baleen::Configuration.log_level = log_level set :port, params[:port] set :environment, :production super end post '/' do payload = JSON.parse(params[:payload]) repo = payload["repository"]["name"] branch = payload["ref"].split("/").last project = Baleen::Project.find_project_by_ci({repo: repo, branch: branch}) BL.notice("Receiving post receive hook for #{project.url}").eol if project async.ci_run(project) end end private def ci_run(project) BL.notice("CI started") BL.info(" Project: #{project.name}") BL.info(" Repo: #{project.repo}") BL.info(" Branch: #{project.branch}").eol if project.ci[:build] BL.notice("Building new image for #{project.image} before running tests...") result = Baleen::Builder.new(project, Docker.url).build BL.info (result) end BL.notice("Start running tests...") RunnerManager.new(nil, project.task).run do |response| logger = Baleen::BL.instance display = ResultDisplay.new(response.results, Time.now, Time.now, logger) display.summary display.detail end BL.notice("Finish running tests...").eol end end end
Version data entries
7 entries across 7 versions & 1 rubygems