Class: JobSeeder

Inherits:
Object
  • Object
show all
Defined in:
lib/job_seeder.rb

Overview

i guess also consider using local jenkins cli from user data?

Instance Method Summary collapse

Instance Method Details

#patch_job_seed(jobs_location:) ⇒ Object

only exposed for testing, don’t call me ok yea ERB more elegant but i’m feeling lazy



25
26
27
28
29
30
31
# File 'lib/job_seeder.rb', line 25

def patch_job_seed(jobs_location:)
  seed_xml = IO.read path_to_seed
  seed_xml.gsub!(/<%= @job_definition_relative_path %>/, jobs_location['job_definition_relative_path'])
  seed_xml.gsub!(/<%= @job_repo_branch %>/, jobs_location['job_repo_branch'])
  seed_xml.gsub!(/<%= @job_repo %>/, jobs_location['job_repo'])
  seed_xml
end

#seed_jobs(jenkins_connection_info:, jobs_location:) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/job_seeder.rb', line 5

def seed_jobs(jenkins_connection_info:,
              jobs_location:)

  client = jenkins_api_client jenkins_connection_info: jenkins_connection_info

  job_name = 'job-seed'
  if client.job.exists? job_name
    client.job.delete job_name
  end

  seed_xml = patch_job_seed jobs_location: jobs_location

  client.job.create job_name,
                    seed_xml

  client.job.build job_name
end