# load bundler, so we can use locally installed gems require 'rubygems' require 'bundler/setup' require 'yaml' require 'pstore' BASEPATH = File.dirname(__FILE__).freeze $config = YAML.load_file(BASEPATH + '/config.yaml').freeze $store = PStore.new("jira_status.pstore") $code = 0 require_relative 'jira_client' require_relative 'gerrit_client' require_relative 'jenkins_client' require_relative 'wiki_client' jira_client = JiraClient.new($config['jira']) wiki_client = WikiClient.new($config['wiki']) gerrit_client = GerritClient.new($config['gerrit']) jenkins_client = JenkinsClient.new($config['jenkins']) jira_client.query_new_epics.map do |wp, key| $store.transaction do $store[key] = { :gerrit_created => false, :jenkins_created => false, :wiki_created => false } if $store[key] == nil end branch_name = "cscf_int_" + wp + "_compint" begin puts key + " # Error creating gerrit branch: " + branch_name $code = 1 next end unless $store.transaction do begin $store[key][:gerrit_created] = gerrit_client.create_new_git_branch branch_name end unless $store[key][:gerrit_created] $store[key][:gerrit_created] end begin puts key + " # Error creating jenkins job" $code = 1 next end unless $store.transaction do begin $store[key][:jenkins_created] = jenkins_client.create_new_jenkins_jobs branch_name, wp end unless $store[key][:jenkins_created] $store[key][:jenkins_created] end begin puts key + " # Error creating WIKI page: " + "CSCF_" + wp.upcase $code = 1 next end unless $store.transaction do begin $store[key][:wiki_created] = wiki_client.create_new_wiki_page "CSCF " + wp.upcase, wp, branch_name end unless $store[key][:wiki_created] $store[key][:wiki_created] end begin puts key + " # could not add label to the issue" $code = 1 end unless jira_client.set_epic_completed(key) end exit $code