73 lines
1.9 KiB
Ruby
73 lines
1.9 KiB
Ruby
# 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
|