jets 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +4 -4
- data/README.md +2 -2
- data/lib/jets.rb +3 -4
- data/lib/jets/application.rb +13 -2
- data/lib/jets/builders.rb +3 -0
- data/lib/jets/builders/code_builder.rb +22 -89
- data/lib/jets/builders/code_size.rb +55 -0
- data/lib/jets/builders/gem_replacer.rb +22 -1
- data/lib/jets/builders/handler_generator.rb +31 -5
- data/lib/jets/builders/lambda_layer.rb +50 -0
- data/lib/jets/builders/md5.rb +10 -5
- data/lib/jets/builders/md5_zip.rb +1 -0
- data/lib/jets/builders/purger.rb +35 -0
- data/lib/jets/builders/rack_packager.rb +25 -5
- data/lib/jets/builders/rackup_wrappers/rackup +1 -5
- data/lib/jets/builders/ruby_packager.rb +25 -27
- data/lib/jets/builders/shim_vars/app.rb +3 -3
- data/lib/jets/builders/shim_vars/base.rb +9 -4
- data/lib/jets/builders/shim_vars/shared.rb +2 -2
- data/lib/jets/builders/templates/handler.rb +7 -0
- data/lib/jets/builders/tidy.rb +4 -3
- data/lib/jets/builders/util.rb +11 -3
- data/lib/jets/cfn/builders/base_child_builder.rb +6 -3
- data/lib/jets/cfn/builders/interface.rb +1 -1
- data/lib/jets/cfn/builders/parent_builder.rb +5 -0
- data/lib/jets/commands/build.rb +4 -2
- data/lib/jets/commands/help/gems/check.md +1 -1
- data/lib/jets/commands/main.rb +1 -1
- data/lib/jets/commands/new.rb +4 -2
- data/lib/jets/commands/sequence.rb +1 -1
- data/lib/jets/commands/templates/skeleton/Gemfile.tt +2 -2
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +0 -5
- data/lib/jets/commands/templates/skeleton/config/database.yml.tt +2 -2
- data/lib/jets/commands/templates/skeleton/config/environments/development.rb +2 -1
- data/lib/jets/commands/templates/skeleton/config/environments/production.rb +2 -3
- data/lib/jets/commands/upgrade/v1.rb +21 -0
- data/lib/jets/controller/renderers/template_renderer.rb +1 -1
- data/lib/jets/controller/rendering.rb +1 -4
- data/lib/jets/core.rb +45 -6
- data/lib/jets/internal/app/jobs/jets/preheat_job.rb +32 -34
- data/lib/jets/mega/request.rb +11 -0
- data/lib/jets/overrides/lambda.rb +1 -0
- data/lib/jets/overrides/lambda/marshaller.rb +31 -0
- data/lib/jets/overrides/rails.rb +4 -0
- data/lib/jets/{rails_overrides → overrides/rails}/asset_tag_helper.rb +0 -0
- data/lib/jets/{rails_overrides → overrides/rails}/common_methods.rb +0 -0
- data/lib/jets/{rails_overrides → overrides/rails}/rendering_helper.rb +0 -0
- data/lib/jets/{rails_overrides → overrides/rails}/url_helper.rb +0 -0
- data/lib/jets/poly_fun/base_executor.rb +1 -1
- data/lib/jets/preheat.rb +1 -0
- data/lib/jets/processors/main_processor.rb +3 -10
- data/lib/jets/{server.rb → rack_server.rb} +31 -2
- data/lib/jets/resource.rb +1 -1
- data/lib/jets/resource/api_gateway/base_path/function.rb +1 -1
- data/lib/jets/resource/child_stack/app_class.rb +10 -4
- data/lib/jets/resource/lambda.rb +5 -0
- data/lib/jets/resource/{function.rb → lambda/function.rb} +8 -6
- data/lib/jets/resource/{function → lambda/function}/environment.rb +1 -1
- data/lib/jets/resource/lambda/gem_layer.rb +17 -0
- data/lib/jets/resource/lambda/layer_version.rb +46 -0
- data/lib/jets/tmp_loader.rb +52 -0
- data/lib/jets/version.rb +1 -1
- data/{README → readme}/prerelease.md +0 -0
- data/{README → readme}/testing.md +5 -0
- data/vendor/jets-gems/lib/jets/gems.rb +1 -1
- data/vendor/jets-gems/lib/jets/gems/check.rb +7 -7
- data/vendor/jets-gems/lib/jets/gems/exist.rb +5 -5
- data/vendor/jets-gems/lib/jets/gems/extract/base.rb +4 -11
- data/vendor/jets-gems/lib/jets/gems/extract/gem.rb +15 -8
- data/vendor/jets-gems/lib/jets/gems/extract/ruby.rb +19 -10
- metadata +22 -15
- data/lib/jets/builders/templates/handler.js +0 -9
- data/lib/jets/builders/templates/shim.js +0 -275
- data/lib/jets/rails_overrides.rb +0 -4
- data/lib/jets/ruby_server.rb +0 -148
@@ -0,0 +1,50 @@
|
|
1
|
+
class Jets::Builders
|
2
|
+
class LambdaLayer
|
3
|
+
include Util
|
4
|
+
|
5
|
+
# At this point we gems have all been moved to stage/code/vendor/bundle, this includes
|
6
|
+
# binary gems, a good state. This method moves them:
|
7
|
+
#
|
8
|
+
# from stage/code/vendor/bundle/ruby/2.5.0
|
9
|
+
# to stage/opt/ruby/gems/2.5.0
|
10
|
+
#
|
11
|
+
# So we can move gems into the Lambda Layer. Important folders later:
|
12
|
+
#
|
13
|
+
# stage/code/opt/lib
|
14
|
+
# stage/code/opt/ruby
|
15
|
+
#
|
16
|
+
def build
|
17
|
+
move_opt_to_stage
|
18
|
+
move_vendor_to_opt
|
19
|
+
symlink_vendor_gems
|
20
|
+
end
|
21
|
+
|
22
|
+
def move_opt_to_stage
|
23
|
+
opt_original = "#{code_area}/opt"
|
24
|
+
opt = "#{stage_area}/opt"
|
25
|
+
FileUtils.mkdir_p(File.dirname(opt))
|
26
|
+
FileUtils.mv(opt_original, opt)
|
27
|
+
end
|
28
|
+
|
29
|
+
def move_vendor_to_opt
|
30
|
+
ruby_folder = Jets::Gems.ruby_folder
|
31
|
+
gems_original = "#{code_area}/vendor/bundle/ruby/#{ruby_folder}"
|
32
|
+
gems = "#{stage_area}/opt/ruby/gems/#{ruby_folder}"
|
33
|
+
FileUtils.mkdir_p(File.dirname(gems))
|
34
|
+
FileUtils.mv(gems_original, gems)
|
35
|
+
# Deleting in this way to make sure folders are empty before we delete them
|
36
|
+
FileUtils.rmdir("#{code_area}/vendor/bundle/ruby")
|
37
|
+
FileUtils.rmdir("#{code_area}/vendor/bundle")
|
38
|
+
FileUtils.rmdir("#{code_area}/vendor") if Dir.empty?("#{code_area}/vendor")
|
39
|
+
end
|
40
|
+
|
41
|
+
# Simple logic: vendor/bundle/ruby/2.5.0 -> /opt/ruby/gems/2.5.0
|
42
|
+
def symlink_vendor_gems
|
43
|
+
ruby_folder = Jets::Gems.ruby_folder
|
44
|
+
dest = "#{code_area}/vendor/bundle/ruby/#{ruby_folder}"
|
45
|
+
FileUtils.mkdir_p(File.dirname(dest))
|
46
|
+
puts "ln -sf /opt/ruby/gems/#{ruby_folder} #{dest}" # uncommen to debug
|
47
|
+
FileUtils.ln_sf("/opt/ruby/gems/#{ruby_folder}", dest)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/jets/builders/md5.rb
CHANGED
@@ -4,7 +4,7 @@ require 'digest'
|
|
4
4
|
# to reference files with the md5 checksum. The files are the:
|
5
5
|
#
|
6
6
|
# jets/code/rack-checksum.zip
|
7
|
-
# jets/code/
|
7
|
+
# jets/code/opt-checksum.zip
|
8
8
|
#
|
9
9
|
# We compute the checksums before we generate the node shim handlers.
|
10
10
|
class Jets::Builders
|
@@ -17,14 +17,19 @@ class Jets::Builders
|
|
17
17
|
|
18
18
|
def stage_folders
|
19
19
|
paths = []
|
20
|
-
paths << "stage/
|
21
|
-
paths << "stage/rack" if
|
22
|
-
# Important to have stage/code at the end, since
|
23
|
-
#
|
20
|
+
paths << "stage/opt" if folder_exist?("opt")
|
21
|
+
paths << "stage/rack" if folder_exist?("rack")
|
22
|
+
# Important to have stage/code at the end, since its md5 checksum depends
|
23
|
+
# on the previous folders.
|
24
24
|
paths << "stage/code"
|
25
25
|
paths
|
26
26
|
end
|
27
27
|
|
28
|
+
def folder_exist?(folder)
|
29
|
+
path = "#{Jets.build_root}/stage/#{folder}"
|
30
|
+
File.directory?(path)
|
31
|
+
end
|
32
|
+
|
28
33
|
def compute!
|
29
34
|
stage_folders.each do |path|
|
30
35
|
@@checksums[path] = dir(path)
|
@@ -20,6 +20,7 @@ class Jets::Builders
|
|
20
20
|
|
21
21
|
def create
|
22
22
|
headline "Creating zip file for #{@path}"
|
23
|
+
# => Creating zip file for /tmp/jets/demo/stage/bundled
|
23
24
|
|
24
25
|
# https://serverfault.com/questions/265675/how-can-i-zip-compress-a-symlink
|
25
26
|
command = "cd #{@path} && zip --symlinks -rq #{zip_file} ."
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# When upgrading jets, automatically rm -rf /tmp/jets/project in case the structure has changed.
|
2
|
+
class Jets::Builders
|
3
|
+
class Purger
|
4
|
+
def initialize
|
5
|
+
@project_name = Jets.config.project_name
|
6
|
+
@version_file = "/tmp/jets/#{@project_name}/jets_version.txt"
|
7
|
+
end
|
8
|
+
|
9
|
+
def purge
|
10
|
+
if version_changed?
|
11
|
+
last_version = @last_version || "unknown"
|
12
|
+
puts "The jets version has changed enough since the last build to merit freshing the build cache."
|
13
|
+
puts "Current jets version: #{Jets::VERSION} Last built jets version: #{last_version}"
|
14
|
+
puts "Removing /tmp/jets/#{@project_name} to start fresh."
|
15
|
+
FileUtils.rm_rf("/tmp/jets/#{@project_name}")
|
16
|
+
end
|
17
|
+
write_version
|
18
|
+
end
|
19
|
+
|
20
|
+
# When jets changes versions major or minor version consider it a big enough can to purge the cache
|
21
|
+
def version_changed?
|
22
|
+
return true unless File.exist?(@version_file)
|
23
|
+
|
24
|
+
@last_version = IO.read(@version_file).strip
|
25
|
+
last_major, last_minor, _ = @last_version.split('.')
|
26
|
+
current_major, current_minor, _ = Jets::VERSION.split('.')
|
27
|
+
last_major != current_major || last_minor != current_minor
|
28
|
+
end
|
29
|
+
|
30
|
+
def write_version
|
31
|
+
FileUtils.mkdir_p(File.dirname(@version_file))
|
32
|
+
IO.write(@version_file, Jets::VERSION)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -3,15 +3,17 @@ class Jets::Builders
|
|
3
3
|
def finish
|
4
4
|
return unless gemfile_exist?
|
5
5
|
|
6
|
-
|
6
|
+
symlink_gems
|
7
|
+
rack_symlink
|
7
8
|
copy_rackup_wrappers
|
8
9
|
end
|
9
10
|
|
10
|
-
def
|
11
|
+
def symlink_gems
|
12
|
+
ruby_folder = Jets::Gems.ruby_folder
|
11
13
|
# IE: @full_app_root: /tmp/jets/demo/stage/code/rack
|
12
|
-
|
13
|
-
FileUtils.
|
14
|
-
FileUtils.ln_sf("/
|
14
|
+
dest = "#{@full_app_root}/vendor/bundle/ruby/#{ruby_folder}"
|
15
|
+
FileUtils.mkdir_p(File.dirname(dest))
|
16
|
+
FileUtils.ln_sf("/opt/ruby/gems/#{ruby_folder}", dest)
|
15
17
|
end
|
16
18
|
|
17
19
|
def copy_rackup_wrappers
|
@@ -25,5 +27,23 @@ class Jets::Builders
|
|
25
27
|
FileUtils.chmod 0755, dest
|
26
28
|
end
|
27
29
|
end
|
30
|
+
|
31
|
+
# Moves folder to a stage folder and create a symlink its place
|
32
|
+
# that links from /var/task to /tmp. Example:
|
33
|
+
#
|
34
|
+
# code_area/rack => /tmp/rack
|
35
|
+
#
|
36
|
+
def rack_symlink
|
37
|
+
src = "#{@full_app_root}/rack"
|
38
|
+
return unless File.exist?(src)
|
39
|
+
|
40
|
+
dest = "#{stage_area}/rack"
|
41
|
+
dir = File.dirname(dest)
|
42
|
+
FileUtils.mkdir_p(dir) unless File.exist?(dir)
|
43
|
+
FileUtils.mv(src, dest)
|
44
|
+
|
45
|
+
# Create symlink
|
46
|
+
FileUtils.ln_sf("/tmp/rack", "/#{@full_app_root}/rack")
|
47
|
+
end
|
28
48
|
end
|
29
49
|
end
|
@@ -16,8 +16,4 @@ unset BUNDLE_IGNORE_CONFIG
|
|
16
16
|
# echo $$ > /tmp/jets-rackup.pid
|
17
17
|
|
18
18
|
# Run the actual app using the bundled Ruby interpreter, with Bundler activated.
|
19
|
-
|
20
|
-
exec ruby -rbundler/setup bin/rackup.rb "$@"
|
21
|
-
else
|
22
|
-
exec "$PROJECTDIR/bundled/rbenv/shims/ruby" -rbundler/setup "$PROJECTDIR/bin/rackup.rb" "$@"
|
23
|
-
fi
|
19
|
+
exec ruby -rbundler/setup bin/rackup.rb "$@"
|
@@ -18,12 +18,16 @@ class Jets::Builders
|
|
18
18
|
setup_bundle_config
|
19
19
|
end
|
20
20
|
|
21
|
+
# build gems in vendor/bundle/ruby/2.5.0 (done in install phase)
|
22
|
+
# replace_compiled_gems:
|
23
|
+
# remove binary gems in vendor/bundle/ruby/2.5.0
|
24
|
+
# extract binary gems in opt/ruby/gems/2.5.0
|
25
|
+
# move binary gems from opt/ruby/gems/2.5.0 to vendor/bundle/ruby/2.5.0
|
21
26
|
def finish
|
22
27
|
return unless gemfile_exist?
|
23
28
|
|
24
|
-
|
25
|
-
|
26
|
-
extract_gems
|
29
|
+
copy_cache_gems
|
30
|
+
replace_compiled_gems
|
27
31
|
tidy
|
28
32
|
end
|
29
33
|
|
@@ -36,7 +40,7 @@ class Jets::Builders
|
|
36
40
|
# If user is on a macosx machine, macosx gems will be installed.
|
37
41
|
# If user is on a linux machine, linux gems will be installed.
|
38
42
|
#
|
39
|
-
# Copies Gemfile* to /tmp/
|
43
|
+
# Copies Gemfile* to /tmp/jets/demo/cache folder and installs
|
40
44
|
# gems with bundle install from there.
|
41
45
|
#
|
42
46
|
# We take the time to copy Gemfile and bundle into a separate directory
|
@@ -44,8 +48,6 @@ class Jets::Builders
|
|
44
48
|
# project gets built again not all the gems from get installed from the
|
45
49
|
# beginning.
|
46
50
|
def bundle_install
|
47
|
-
return if poly_only?
|
48
|
-
|
49
51
|
full_project_path = @full_app_root
|
50
52
|
headline "Bundling: running bundle install in cache area: #{cache_area}."
|
51
53
|
|
@@ -53,10 +55,9 @@ class Jets::Builders
|
|
53
55
|
|
54
56
|
require "bundler" # dynamically require bundler so user can use any bundler
|
55
57
|
Bundler.with_clean_env do
|
56
|
-
# cd /tmp/jets/demo
|
57
58
|
sh(
|
58
59
|
"cd #{cache_area} && " \
|
59
|
-
"env BUNDLE_IGNORE_CONFIG=1 bundle install --path #{cache_area}/
|
60
|
+
"env BUNDLE_IGNORE_CONFIG=1 bundle install --path #{cache_area}/vendor/bundle --without development test"
|
60
61
|
)
|
61
62
|
end
|
62
63
|
|
@@ -95,7 +96,7 @@ class Jets::Builders
|
|
95
96
|
end
|
96
97
|
|
97
98
|
# When using submodules, bundler leaves old submodules behind. Over time this inflates
|
98
|
-
# the size of the the
|
99
|
+
# the size of the the cache gems. So we'll clean it up.
|
99
100
|
def clean_old_submodules
|
100
101
|
# https://stackoverflow.com/questions/38800129/parsing-a-gemfile-lock-with-bundler
|
101
102
|
lockfile = "#{cache_area}/Gemfile.lock"
|
@@ -117,8 +118,8 @@ class Jets::Builders
|
|
117
118
|
md[1] # git_sha
|
118
119
|
end
|
119
120
|
|
120
|
-
# IE: /tmp/jets/demo/cache/
|
121
|
-
Dir.glob("#{cache_area}/
|
121
|
+
# IE: /tmp/jets/demo/cache/vendor/bundle/ruby/2.5.0/bundler/gems/webpacker-a8c46614c675
|
122
|
+
Dir.glob("#{cache_area}/vendor/bundle/ruby/2.5.0/bundler/gems/*").each do |path|
|
122
123
|
sha = path.split('-').last[0..6] # only first 7 chars of the git sha
|
123
124
|
unless git_shas.include?(sha)
|
124
125
|
# puts "Removing old submoduled gem: #{path}" # uncomment to see and debug
|
@@ -139,7 +140,7 @@ class Jets::Builders
|
|
139
140
|
# Override project's .bundle/config and ensure that .bundle/config matches
|
140
141
|
# at these 2 spots:
|
141
142
|
# app_root/.bundle/config
|
142
|
-
#
|
143
|
+
# vendor/bundle/.bundle/config
|
143
144
|
cache_bundle_config = "#{cache_area}/.bundle/config"
|
144
145
|
app_bundle_config = "#{@full_app_root}/.bundle/config"
|
145
146
|
FileUtils.mkdir_p(File.dirname(app_bundle_config))
|
@@ -153,7 +154,8 @@ class Jets::Builders
|
|
153
154
|
def ensure_build_cache_bundle_config_exists!
|
154
155
|
text =<<-EOL
|
155
156
|
---
|
156
|
-
|
157
|
+
BUNDLE_FROZEN: "true"
|
158
|
+
BUNDLE_PATH: "vendor/bundle"
|
157
159
|
BUNDLE_WITHOUT: "development:test"
|
158
160
|
EOL
|
159
161
|
bundle_config = "#{cache_area}/.bundle/config"
|
@@ -169,25 +171,21 @@ EOL
|
|
169
171
|
}
|
170
172
|
end
|
171
173
|
|
172
|
-
def
|
173
|
-
headline "Setting up a vendored copy of ruby."
|
174
|
-
Jets::Gems::Extract::Ruby.new(Jets::RUBY_VERSION, gems_options).run
|
175
|
-
end
|
176
|
-
|
177
|
-
def extract_gems
|
174
|
+
def replace_compiled_gems
|
178
175
|
headline "Replacing compiled gems with AWS Lambda Linux compiled versions."
|
179
176
|
GemReplacer.new(Jets::RUBY_VERSION, gems_options).run
|
180
177
|
end
|
181
178
|
|
182
|
-
def
|
183
|
-
|
184
|
-
if File.exist?(
|
185
|
-
puts "Removing current
|
186
|
-
FileUtils.rm_rf(
|
179
|
+
def copy_cache_gems
|
180
|
+
vendor_bundle = "#{@full_app_root}/vendor/bundle"
|
181
|
+
if File.exist?(vendor_bundle)
|
182
|
+
puts "Removing current vendor_bundle from project"
|
183
|
+
FileUtils.rm_rf(vendor_bundle)
|
187
184
|
end
|
188
|
-
# Leave #{Jets.build_root}/
|
189
|
-
if File.exist?("#{cache_area}/
|
190
|
-
FileUtils.
|
185
|
+
# Leave #{Jets.build_root}/vendor_bundle behind to act as cache
|
186
|
+
if File.exist?("#{cache_area}/vendor/bundle")
|
187
|
+
FileUtils.mkdir_p(File.dirname(vendor_bundle))
|
188
|
+
FileUtils.cp_r("#{cache_area}/vendor/bundle", vendor_bundle)
|
191
189
|
end
|
192
190
|
end
|
193
191
|
|
@@ -8,7 +8,7 @@
|
|
8
8
|
#
|
9
9
|
# functions: IE [:index, :show]
|
10
10
|
# handler_for(function_name): IE handlers/controllers/posts_controller.index
|
11
|
-
#
|
11
|
+
# dest_path: IE: handlers/controllers/posts_controller.js
|
12
12
|
#
|
13
13
|
module Jets::Builders::ShimVars
|
14
14
|
class App < Base
|
@@ -69,10 +69,10 @@ module Jets::Builders::ShimVars
|
|
69
69
|
end
|
70
70
|
|
71
71
|
# Example return: "handlers/controllers/posts.js"
|
72
|
-
|
72
|
+
# TODO: rename this to dest_path or something better now since using native ruby
|
73
|
+
def dest_path
|
73
74
|
@relative_path
|
74
75
|
.sub("app", "handlers")
|
75
|
-
.sub(/\.rb$/, ".js")
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
@@ -8,13 +8,18 @@ module Jets::Builders::ShimVars
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def rack_zip
|
11
|
-
|
12
|
-
"rack-#{checksum}.zip"
|
11
|
+
checksum_zip(:rack)
|
13
12
|
end
|
14
13
|
|
15
14
|
def bundled_zip
|
16
|
-
|
17
|
-
|
15
|
+
checksum_zip(:bundled)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
def checksum_zip(name)
|
20
|
+
checksum = Jets::Builders::Md5.checksums["stage/#{name}"]
|
21
|
+
return unless checksum
|
22
|
+
"#{name}-#{checksum}.zip"
|
18
23
|
end
|
19
24
|
|
20
25
|
def stage_area
|
@@ -8,7 +8,7 @@
|
|
8
8
|
#
|
9
9
|
# functions: IE [:index, :show]
|
10
10
|
# handler_for(function_name): IE handlers/controllers/posts_controller.index
|
11
|
-
#
|
11
|
+
# dest_path: IE: handlers/controllers/posts_controller.js
|
12
12
|
#
|
13
13
|
module Jets::Builders::ShimVars
|
14
14
|
class Shared < Base
|
@@ -30,7 +30,7 @@ module Jets::Builders::ShimVars
|
|
30
30
|
end
|
31
31
|
|
32
32
|
# IE handlers/shared/functions/bob.js
|
33
|
-
def
|
33
|
+
def dest_path
|
34
34
|
@fun.handler_dest
|
35
35
|
end
|
36
36
|
end
|
data/lib/jets/builders/tidy.rb
CHANGED
@@ -48,9 +48,9 @@ class Jets::Builders
|
|
48
48
|
(defaults + keep).uniq
|
49
49
|
end
|
50
50
|
|
51
|
-
# folders to remove in the
|
51
|
+
# folders to remove in the vendor/bundle folder regardless of the level of the folder
|
52
52
|
def tidy_bundled
|
53
|
-
Dir.glob("#{@project_root}/
|
53
|
+
Dir.glob("#{@project_root}/vendor/bundle/**/*").each do |path|
|
54
54
|
next unless File.directory?(path)
|
55
55
|
dir = File.basename(path)
|
56
56
|
next unless always_removals.include?(dir)
|
@@ -65,7 +65,8 @@ class Jets::Builders
|
|
65
65
|
# actual cache folders that they used.
|
66
66
|
def remove_gem_cache
|
67
67
|
ruby_minor_version = Jets::RUBY_VERSION.split('.')[0..1].join('.') + '.0'
|
68
|
-
|
68
|
+
cache_path = "#{@project_root}/vendor/bundle/ruby/#{ruby_minor_version}/cache"
|
69
|
+
FileUtils.rm_rf(cache_path)
|
69
70
|
end
|
70
71
|
|
71
72
|
def rm_rf(path)
|
data/lib/jets/builders/util.rb
CHANGED
@@ -3,7 +3,11 @@ class Jets::Builders
|
|
3
3
|
def sh(command)
|
4
4
|
puts "=> #{command}".colorize(:green)
|
5
5
|
success = system(command)
|
6
|
-
|
6
|
+
unless success
|
7
|
+
puts "#{command} failed to run.".colorize(:red)
|
8
|
+
puts caller[0]
|
9
|
+
exit 1
|
10
|
+
end
|
7
11
|
success
|
8
12
|
end
|
9
13
|
|
@@ -17,8 +21,12 @@ class Jets::Builders
|
|
17
21
|
"#{Jets.build_root}/#{relative_path}"
|
18
22
|
end
|
19
23
|
|
20
|
-
def
|
21
|
-
Jets.
|
24
|
+
def stage_area
|
25
|
+
"#{Jets.build_root}/stage"
|
26
|
+
end
|
27
|
+
|
28
|
+
def code_area
|
29
|
+
"#{stage_area}/code"
|
22
30
|
end
|
23
31
|
end
|
24
32
|
end
|
@@ -22,8 +22,11 @@ class Jets::Cfn::Builders
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def add_common_parameters
|
25
|
-
|
26
|
-
|
25
|
+
common_parameters = Jets::Resource::ChildStack::AppClass.common_parameters
|
26
|
+
common_parameters.each do |k,_|
|
27
|
+
add_parameter(k, Description: k)
|
28
|
+
end
|
29
|
+
|
27
30
|
depends_on_params.each do |logical_id, desc|
|
28
31
|
add_parameter(logical_id, Description: desc)
|
29
32
|
end
|
@@ -58,7 +61,7 @@ class Jets::Cfn::Builders
|
|
58
61
|
end
|
59
62
|
|
60
63
|
def add_function(task)
|
61
|
-
resource = Jets::Resource::Function.new(task)
|
64
|
+
resource = Jets::Resource::Lambda::Function.new(task)
|
62
65
|
add_resource(resource)
|
63
66
|
end
|
64
67
|
|