diff options
Diffstat (limited to 'app/jobs/govuk_guix/build_job.rb')
-rw-r--r-- | app/jobs/govuk_guix/build_job.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/app/jobs/govuk_guix/build_job.rb b/app/jobs/govuk_guix/build_job.rb new file mode 100644 index 0000000..381a717 --- /dev/null +++ b/app/jobs/govuk_guix/build_job.rb @@ -0,0 +1,33 @@ +require 'ruby_terraform' +require 'open3' + +class GovukGuix::BuildJob < GovukGuix::Job + @retry_interval = 30 + + def run(mini_environment_id) + logger.info "GovukGuix::BuildJob: Building mini environment #{mini_environment_id}" + + mini_environment = MiniEnvironment.find(mini_environment_id) + + slug = mini_environment.name.parameterize + + command = [ + "#{mini_environment.govuk_guix_revision.store_path}/bin/govuk", + "system", + "build", + "--rails-environment=production", + "--app-domain=#{slug}.aws.cbaines.net", + "--web-domain=www.#{slug}.aws.cbaines.net", + "--use-high-ports=false", + "--use-https=certbot", + "--fallback", + ] + + run_command(command) do |output| + store_path = output.last.strip + logger.debug("GovukGuix::BuildJob: start_command: #{store_path}") + + mini_environment.update(start_command: store_path) + end + end +end |