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