Class: Actions::ForemanPipeline::Jenkins::Build
- Inherits:
-
AbstractJenkinsAction
- Object
- EntryAction
- AbstractJenkinsAction
- Actions::ForemanPipeline::Jenkins::Build
- Defined in:
- app/lib/actions/foreman_pipeline/jenkins/build.rb
Instance Method Summary collapse
- #params ⇒ Object
- #rescue_strategy_for_self ⇒ Object
- #run ⇒ Object
- #template_binding(project_params) ⇒ Object
Methods inherited from AbstractJenkinsAction
Instance Method Details
#params ⇒ Object
16 17 18 19 20 |
# File 'app/lib/actions/foreman_pipeline/jenkins/build.rb', line 16 def params project_params = jenkins_project.jenkins_project_params return {} if project_params.empty? template_binding project_params end |
#rescue_strategy_for_self ⇒ Object
22 23 24 |
# File 'app/lib/actions/foreman_pipeline/jenkins/build.rb', line 22 def rescue_strategy_for_self Dynflow::Action::Rescue::Skip end |
#run ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'app/lib/actions/foreman_pipeline/jenkins/build.rb', line 7 def run timeout = job.jenkins_instance.timeout_sec output[:project_name] = jenkins_project.name output[:build_params] = params output[:build_num] = job.jenkins_instance.client.job.build(jenkins_project.name, params, 'build_start_timeout' => timeout) rescue => e fail "Jenkins build for #{jenkins_project.name} failed to start in a timely manner." end |
#template_binding(project_params) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'app/lib/actions/foreman_pipeline/jenkins/build.rb', line 26 def template_binding(project_params) host = input[:data][:host] activation_key = input[:data][:activation_key] packages = input[:data][:packages] project_params.each do |param| param.value = ERB.new(param.value).result(binding) param.format_bool end.map do |param| {param.name => param.value} end.reduce(:merge) end |