Sha256: 3a38aa9fc2001a3c6f7a4d8b6f2940d3e5c5e172dd26b089a180c7821692256c

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

require "httparty"
require 'nokogiri'
require 'cgi'

require "kraken-build/version"
require "kraken-build/jenkins-api.rb"
require "kraken-build/github-api.rb"



module KrakenBuild

  def self.set_config(options = {})
    @config = options
    @repository = options[:repository]
    @github = GithubApi.new(@config)
    @jenkins = JenkinsApi.new(@config)
    @jobs = []
    @branches = []

    @config
  end

  def self.get_jenkins_branches
    @jenkins.get_jobs.map{ |job| job =~ /^#{@repository}\.(.*)$/ && $1 }.compact
  end

  def self.get_github_branches
    @github.get_branches
  end

  def self.run
    @jobs = get_jenkins_branches
    @branches = get_github_branches

    create = compute_jobs_to_create
    create.map do |job|
      job_name = "#{@repository}.#{job}"
      puts "creating => #{job_name}"
      @jenkins.create_job(job_name)
      @jenkins.build_job(job_name)
    end


    remove = compute_jobs_to_remove
    remove.map do |job|
      job_name = "#{@repository}.#{job}"
      puts "removing => #{job_name}"
      @jenkins.remove_job(job_name)
    end

  end

   def self.compute_jobs_to_create
    @branches - @jobs
  end

  def self.compute_jobs_to_remove
    @jobs - @branches
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kraken-build-0.0.1 lib/kraken-build.rb