14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/chatops_deployer/deploy_job.rb', line 14
def perform(repository:, branch: 'master', config_file: 'chatops_deployer.yml', callback_url:)
@branch = branch
@project = Project.new(repository, branch, config_file)
log_file = File.open(LOG_FILE, 'a')
@logger = ::Logger.new(MultiIO.new($stdout, log_file)).tap do |l|
l.progname = @project.sha1
end
@nginx_config = NginxConfig.new(@project)
@container = Container.new(@project)
[@project, @nginx_config, @container].each do |obj|
obj.logger = @logger
end
Dir.chdir(@project.branch_directory) do
@project.fetch_repo
@project.read_config
@nginx_config.prepare_urls
@project.copy_files_from_deployer
@project.setup_cache_directories
@container.build
@project.update_cache
end
@nginx_config.add_urls(@container.urls)
callback(callback_url, :deployment_success)
rescue ChatopsDeployer::Error => e
@logger.error(e.message)
callback(callback_url, :deployment_failure, e.message)
end
|