jets 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|