aboutsummaryrefslogtreecommitdiff
path: root/app/jobs/govuk_guix/build_job.rb
blob: 381a7175ed03bf10182b1f1163227645c7df9ae5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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