Class: JenkinsTask

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

Direct Known Subclasses

JenkinsTaskConfigure, JenkinsTaskManageJobs

Instance Method Summary collapse

Instance Method Details

#configObject



32
33
34
# File 'lib/tasks/jenkins_task.rb', line 32

def config
  @config ||= (File.exists?(config_file) ? YAML::load(File.open(config_file)) : {})
end

#config_fileObject



36
37
38
39
40
# File 'lib/tasks/jenkins_task.rb', line 36

def config_file
  dirname = File.dirname("#{ENV['HOME']}/.#{project}/#{project}.yml")
  Dir.mkdir(dirname) unless Dir.exist?(dirname)
  @config_file ||= "#{dirname}/#{project}.yml"
end

#fail_on_args_error(branch) ⇒ Object



8
9
10
# File 'lib/tasks/jenkins_task.rb', line 8

def fail_on_args_error(branch)
  fail 'Please specify a branch name, e.g. rake jenkins:new_job[SS-123]' if branch.to_s == ''
end

#fail_on_existing_job(job) ⇒ Object



16
17
18
# File 'lib/tasks/jenkins_task.rb', line 16

def fail_on_existing_job(job)
  fail "Job #{job} already exists, please provide a unique job name" if client.job.exists?(job)
end

#fail_on_missing_remote_branch(branch) ⇒ Object



12
13
14
# File 'lib/tasks/jenkins_task.rb', line 12

def fail_on_missing_remote_branch(branch)
  fail "No remote branch found named #{branch}, please create one first" unless GitTask.remote_branch_exists?(branch)
end

#fail_on_non_existing_job(job) ⇒ Object



20
21
22
# File 'lib/tasks/jenkins_task.rb', line 20

def fail_on_non_existing_job(job)
  fail "Job #{job} does not exist" unless client.job.exists?(job)
end

#job(branch) ⇒ Object



28
29
30
# File 'lib/tasks/jenkins_task.rb', line 28

def job(branch)
  @job ||= "#{config['jenkins']['job_prefix']}-#{project}-#{branch}"
end

#projectObject



24
25
26
# File 'lib/tasks/jenkins_task.rb', line 24

def project
  @project ||= File.basename(Dir.getwd)
end