coyote-sync/cron.rb
2018-02-08 11:44:04 +01:00

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