Module: AwsDeploy::Tasks::GenerateLocalDeployRb

Included in:
SetupYml
Defined in:
app/business/aws_deploy/tasks/generate_local_deploy_rb.rb

Instance Method Summary collapse

Instance Method Details

#generate_local_deploy_rbObject



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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'app/business/aws_deploy/tasks/generate_local_deploy_rb.rb', line 6

def generate_local_deploy_rb

  content = 
    "#!/usr/bin/env ruby \n" + 
    "# \n" + 
    "require 'FileUtils' \n" + 
    "require './lib/deploy/git_version_tag.rb' \n" + 
    "require './lib/deploy/aws_send.rb' \n" + 
    " \n" + 
    "# ------------------------------------------------------------------------------------- \n" + 
    "# CONFIGURABLE \n" + 
    "# ------------------------------------------------------------------------------------- \n" + 
    " \n" + 
    "zip_file = \"#{@file_pattern}\" \n" + 
    "md5_file = \"\#{zip_file}\" \n" + 
    " \n" + 
    "aws_access_key_id = \"#{@aws_access_key_id}\" \n" + 
    "aws_secret_access_key = \"#{@aws_secret_access_key}\" \n" + 
    "aws_bucket = \"#{@aws_deploy_bucket}\" \n" + 
    " \n" + 
    "_temp_dir = \"\#{File.expand_path(\"~\")}/Temp/#{@project_name}\" \n" +
    " \n" + 
    "# \n" + 
    "# ------------------------------------------------------------------------------------- \n" + 
    " \n" + 
    " \n" + 
    "time = Time.now.strftime(\"%y%m%d.%H%M%S\") \n" + 
    "public_dir = Dir.new(\"../public\") \n" + 
    " \n" + 
    "Dir.mkdir(_temp_dir) unless File.directory?(_temp_dir) \n" + 
    "temp_dir = \"\#{_temp_dir}/\#{time}\" \n" + 
    "# env = ARGV[0] \n" + 
    " \n" + 
    " \n" + 
    " \n" + 
    "puts \"------------------------------------------------------------------------------ \" \n" + 
    " \n" + 
    " \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    "puts \"3. Version.txt\" \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    " \n" + 
    "GitVersionTag.new(time, \"gitlab\", public_dir.path).version_it \n" + 
    " \n" + 
    " \n" + 
    " \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    "puts \"2. Git tag\" \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    " \n" + 
    "GitVersionTag.new(time, \"gitlab\", public_dir.path).tag_it \n" + 
    " \n" + 
    " \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    "puts \"3. Packing\" \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    " \n" + 
    " \n" + 
    " \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    "puts \"3.1 - Copying content to a temporary folder - \#{Time.now}\" \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    " \n" + 
    "Dir.mkdir(\"\#{temp_dir}\") \n" + 
    " \n" + 
    "exclude_dirs = [] \n" + 
    "exclude_dirs << \"ie7ref\" \n" + 
    "exclude_dirs << \".git\" \n" + 
    "exclude_dirs << \".gitignore\" \n" + 
    "exclude_dirs << \".autotest\" \n" + 
    "exclude_dirs << \"tmp\" \n" + 
    "exclude_dirs << \"doc\" \n" + 
    "exclude_dirs << \".svn\" \n" + 
    "exclude_dirs << \"wip\" \n" + 
    "exclude_dirs << \"log/*\" \n" + 
    "exclude_dirs << \"test/*\" \n" + 
    "exclude_dirs << \"script/security/*\" \n" + 
    "exclude_dirs << \"README.rdoc\" \n" + 
    "exclude_dirs << \"public/app\" \n" + 
    " \n" + 
    "rsync_command = \"rsync -avz --exclude '\#{exclude_dirs.join(\"' --exclude '\")}' ../ \#{temp_dir}\" \n" +
    "system(\"\#{rsync_command}\") \n" + 
    " \n" + 
    " \n" + 
    " \n" + 
    " \n" + 
    " \n" + 
    " \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    "puts \"3.2 - Generating package - \#{Time.now}\" \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    " \n" + 
    "system(\"cd \#{temp_dir}; bundle install\") \n" + 
    "system(\"cd \#{temp_dir}; bundle exec rake assets:precompile --trace\") \n" + 
    "# system(\"rm -rf \#{temp_dir}/public/assets\") \n" + 
    "system(\"rm -rf \#{temp_dir}/../\#{zip_file}.zip\") \n" + 
    "system(\"cd \#{temp_dir}; zip -qr ../\#{zip_file}.zip ./*\") \n" + 
    " \n" + 
    " \n" + 
    " \n" + 
    " \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    "puts \"3.3 - Generating MD5 - \#{Time.now}\" \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    " \n" + 
    "system(\"rm -rf \#{temp_dir}/../\#{md5_file}.md5\") \n" + 
    "system(\"cd \#{temp_dir}; md5 <<< \\\"\#{Time.now}\\\" >> ../\#{md5_file}.md5\") \n" + 
    " \n" + 
    " \n" + 
    " \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    "puts \"4. AWS Send\" \n" + 
    "# puts \"------------------------------------------------------------------------------ \" \n" + 
    " \n" + 
    "AwsSend.new(aws_access_key_id, aws_secret_access_key).send(\"\#{temp_dir}/../\#{zip_file}.zip\", aws_bucket) \n" + 
    "AwsSend.new(aws_access_key_id, aws_secret_access_key).send(\"\#{temp_dir}/../\#{md5_file}.md5\", aws_bucket) \n" + 
    " \n" + 
    " \n" + 
    "puts \"------------------------------------------------------------------------------ \" \n"


      
  File.delete("#{Rails.root}/script/deploy.rb") if File.exists?("#{Rails.root}/script/deploy.rb")

  File.open("#{Rails.root}/script/deploy.rb", "w") do |f| 
    f.write("#{content}")
  end

  "#{Rails.root}/script/deploy.rb"
end