diff options
Diffstat (limited to 'app/jobs/govuk_guix/generate_start_command_job.rb')
-rw-r--r-- | app/jobs/govuk_guix/generate_start_command_job.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/app/jobs/govuk_guix/generate_start_command_job.rb b/app/jobs/govuk_guix/generate_start_command_job.rb new file mode 100644 index 0000000..489e35e --- /dev/null +++ b/app/jobs/govuk_guix/generate_start_command_job.rb @@ -0,0 +1,37 @@ +require 'ruby_terraform' +require 'open3' + +class GovukGuix::GenerateStartCommandJob < GovukGuix::Job + @retry_interval = 30 + + def run(mini_environment_id) + logger.info "GovukGuix::GenerateStartCommandJob: 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::GenerateStartCommandJob: start_command: #{store_path}") + + mini_environment.update( + backend_data: { + start_command: store_path + } + ) + end + end +end |