class Terraspace::Builder
Attributes
graph[R]
Public Instance Methods
auto_create_backend()
click to toggle source
Auto create after build_unresolved
since will need to run state pull for dependencies
# File lib/terraspace/builder.rb, line 70 def auto_create_backend return if Terraspace.config.auto_create_backend == false return unless requires_backend? Terraspace::Compiler::Backend.new(@mod).create end
build_all()
click to toggle source
# File lib/terraspace/builder.rb, line 42 def build_all # At this point dependencies have been resolved. Terraspace::Terraform::RemoteState::Fetcher.flush! @resolved = true build_unresolved end
build_batches()
click to toggle source
Builds dependency graph and returns the batches to run
# File lib/terraspace/builder.rb, line 36 def build_batches dependencies = Terraspace::Dependency::Registry.data # populated after build_unresolved @graph = Terraspace::Dependency::Graph.new(stack_names, dependencies, @options) @graph.build end
build_dir(type_dir)
click to toggle source
# File lib/terraspace/builder.rb, line 60 def build_dir(type_dir) with_each_mod(type_dir) do |mod| mod.resolved = @resolved is_root_module = mod.cache_dir == @mod.cache_dir next if is_root_module # handled by build_root_module Compiler::Builder.new(mod).build end end
build_root_module()
click to toggle source
# File lib/terraspace/builder.rb, line 55 def build_root_module @mod.resolved = @resolved Compiler::Builder.new(@mod).build end
build_unresolved()
click to toggle source
# File lib/terraspace/builder.rb, line 49 def build_unresolved build_dir("modules") build_dir("stacks") build_root_module end
check_allow!()
click to toggle source
# File lib/terraspace/builder.rb, line 31 def check_allow! Allow.new(@mod).check! end
clean()
click to toggle source
# File lib/terraspace/builder.rb, line 76 def clean Compiler::Cleaner.new(@mod, @options).clean if clean? end
clean?()
click to toggle source
# File lib/terraspace/builder.rb, line 80 def clean? if @options[:clean].nil? clean_cache = Terraspace.config.build.clean_cache clean_cache.nil? ? true : clean_cache else @options[:clean] end end
placeholder_stack_message()
click to toggle source
# File lib/terraspace/builder.rb, line 89 def placeholder_stack_message return if @options[:quiet] return unless @options[:mod] == "placeholder" logger.info "Building one stack to build all stacks" end
run()
click to toggle source
# File lib/terraspace/builder.rb, line 9 def run return if @options[:build] == false Terraspace::CLI::CheckSetup.check! @mod.root_module = true clean build_dir = Util.pretty_path(@mod.cache_dir) placeholder_stack_message logger.info "Building #{build_dir}" unless @options[:quiet] # from terraspace all batches = nil FileUtils.mkdir_p(@mod.cache_dir) # so terraspace before build hooks work run_hooks("terraspace.rb", "build") do check_allow! build_unresolved auto_create_backend batches = build_batches build_all logger.info "Built in #{build_dir}" unless @options[:quiet] # from terraspace all end batches end