class Jenkinson::API

Attributes

client[R]

Public Class Methods

new(config) click to toggle source
# File lib/jenkinson/api.rb, line 6
def initialize(config)
  @client = JenkinsApi::Client.new(config)
end

Public Instance Methods

create_or_update_jobs(jobs_folder) click to toggle source
# File lib/jenkinson/api.rb, line 10
def create_or_update_jobs(jobs_folder)
  jobs = Dir["#{jobs_folder}/*/config.xml"]
  jobs.each do |job|
    File.open(job, "rb") do |xml_file|
      jobname = job.split('/')[-2]
      client.job.create_or_update(jobname, xml_file.read)
    end
  end
end
get_jobs_config(target_dir) click to toggle source
# File lib/jenkinson/api.rb, line 20
def get_jobs_config(target_dir)
  client.job.list_all.each do |jobname|
    job_on_server = client.job.get_config(jobname) rescue nil
    job = "#{target_dir}/#{jobname}/config.xml"
    next if job_on_server.nil?

    dirname = File.dirname(job)
    Dir.mkdir(dirname) unless Dir.exist?(dirname)

    File.open(job, "w") do |xml_file|
      xml_file << job_on_server
    end
  end
end
install_plugins(plugins_str) click to toggle source
# File lib/jenkinson/api.rb, line 35
def install_plugins(plugins_str)
  plugins = plugins_str.split(',')
  plugins.each do |plugin|
    client.plugin.install(plugin)
  end
end