class HerokuBuilder::Service
Public Class Methods
apply(environment)
click to toggle source
# File lib/heroku_builder/service.rb, line 52 def self.apply(environment) config = config_from_environment(environment) name = config['app']['name'] # find or create app update_app(name) # set env variables update_env_vars(name, environment) # find or create addons update_addons(name, environment) # deploy code run_deployment(name, environment) # find or create resource update_resources(name, environment) end
config_file()
click to toggle source
# File lib/heroku_builder/service.rb, line 3 def self.config_file @config_file ||= YAML.load(ERB.new(File.read('config/heroku.yml')).result) end
config_from_environment(environment)
click to toggle source
# File lib/heroku_builder/service.rb, line 7 def self.config_from_environment(environment) @config_from_environment ||= config_file[environment] end
configure(environment)
click to toggle source
# File lib/heroku_builder/service.rb, line 43 def self.configure(environment) config = config_from_environment(environment) name = config['app']['name'] update_env_vars(name, environment) update_addons(name, environment) update_resources(name, environment) end
deploy(environment)
click to toggle source
# File lib/heroku_builder/service.rb, line 38 def self.deploy(environment) name = config_from_environment(environment)['app']['name'] run_deployment(name, environment) end
run_deployment(name, environment)
click to toggle source
# File lib/heroku_builder/service.rb, line 15 def self.run_deployment(name, environment) git_branch = config_from_environment(environment)['app']['git_branch'] Deployment.new.deploy(name, git_branch, environment) end
update_addons(name, environment)
click to toggle source
# File lib/heroku_builder/service.rb, line 26 def self.update_addons(name, environment) config = config_from_environment(environment) return if !config.key?('addons') || config['addons'].empty? AddOn.new.set_addons(name, config['addons']) end
update_app(name)
click to toggle source
# File lib/heroku_builder/service.rb, line 11 def self.update_app(name) App.new.find_or_create_app(name) end
update_env_vars(name, environment)
click to toggle source
# File lib/heroku_builder/service.rb, line 20 def self.update_env_vars(name, environment) config = config_from_environment(environment) return if !config.key?('config_vars') || config['config_vars'].empty? EnvVar.new.set_config_vars(name, config['config_vars']) end
update_resources(name, environment)
click to toggle source
# File lib/heroku_builder/service.rb, line 32 def self.update_resources(name, environment) config = config_from_environment(environment) return if !config.key?('resources') || config['resources'].empty? Resource.new.set_resources(name, config['resources']) end