lono 7.3.0 → 7.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/lono/app_file/build/lambda_layer/ruby_packager.rb +30 -17
- data/lib/lono/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5a28e2180e7a054b7e98282463ff7dff16c5deac888a2e7e24276a1b5121373
|
4
|
+
data.tar.gz: bdba8d533c3e7a984429895e514a4ad59610709c6df98efa688394976637dc1a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7417b4b562eda86bff02b2f9c9eba2530a9929317ce240f22a36b010bf8eb95af4cbcc5deaabf4f2bdb3d83e8211711c7fcdccfadcdf04d5858532de1424a3b1
|
7
|
+
data.tar.gz: b7f30f13206e2f7264d076c7e3fc3eb2fda318a6a827ad3306581d6b379682637266d6fc20cdd2b937139b26c89c910dd48f26061517ced9e29e673924a3baeb
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,9 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [7.3.1]
|
7
|
+
- #55 lambda layer fixes: allow Gemfile path option to vendor gems
|
8
|
+
|
6
9
|
## [7.3.0]
|
7
10
|
- #54 introduce lambda layer concept
|
8
11
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'shellwords'
|
2
|
+
|
1
3
|
class Lono::AppFile::Build::LambdaLayer
|
2
4
|
# Based on jets
|
3
5
|
class RubyPackager
|
@@ -36,8 +38,7 @@ class Lono::AppFile::Build::LambdaLayer
|
|
36
38
|
|
37
39
|
def rsync_and_link(src, dest)
|
38
40
|
FileUtils.mkdir_p(dest)
|
39
|
-
|
40
|
-
sh "rsync -a --links #{src}/ #{dest}/"
|
41
|
+
rsync(src, dest)
|
41
42
|
|
42
43
|
# create symlink in output path not the cache path
|
43
44
|
symlink_dest = "#{output_area}/vendor/gems/ruby/#{ruby_folder}"
|
@@ -69,12 +70,12 @@ class Lono::AppFile::Build::LambdaLayer
|
|
69
70
|
def bundle_install
|
70
71
|
puts "Bundling: running bundle install in cache area: #{cache_area}."
|
71
72
|
|
72
|
-
|
73
|
+
rsync(output_area, cache_area)
|
73
74
|
|
74
75
|
# Uncomment out to always remove the cache/vendor/gems to debug
|
75
76
|
# FileUtils.rm_rf("#{cache_area}/vendor/gems")
|
76
77
|
|
77
|
-
# Remove .bundle folder so .bundle/config doesnt affect how
|
78
|
+
# Remove .bundle folder so .bundle/config doesnt affect how gems are packages
|
78
79
|
# Not using BUNDLE_IGNORE_CONFIG=1 to allow home ~/.bundle/config to affect bundling though.
|
79
80
|
# This is useful if you have private gems sources that require authentication. Example:
|
80
81
|
#
|
@@ -125,18 +126,6 @@ class Lono::AppFile::Build::LambdaLayer
|
|
125
126
|
FileUtils.cp(src, dest)
|
126
127
|
end
|
127
128
|
|
128
|
-
# Clean up extra unneeded files to reduce package size
|
129
|
-
def copy_gemfiles(app_root)
|
130
|
-
FileUtils.mkdir_p(cache_area)
|
131
|
-
FileUtils.cp("#{app_root}/Gemfile", "#{cache_area}/Gemfile")
|
132
|
-
|
133
|
-
gemfile_lock = "#{app_root}/Gemfile.lock"
|
134
|
-
dest = "#{cache_area}/Gemfile.lock"
|
135
|
-
return unless File.exist?(gemfile_lock)
|
136
|
-
|
137
|
-
FileUtils.cp(gemfile_lock, dest)
|
138
|
-
end
|
139
|
-
|
140
129
|
def setup_bundle_config(dir)
|
141
130
|
text =<<-EOL
|
142
131
|
---
|
@@ -174,7 +163,31 @@ EOL
|
|
174
163
|
puts "=> #{command}"
|
175
164
|
out = `#{command}`
|
176
165
|
puts out if ENV['LONO_DEBUG_LAMBDA_LAYER']
|
177
|
-
$?.success?
|
166
|
+
success = $?.success?
|
167
|
+
raise("ERROR: running command #{command}").color(:red) unless success
|
168
|
+
success
|
169
|
+
end
|
170
|
+
|
171
|
+
def rsync(src, dest)
|
172
|
+
# Using FileUtils.cp_r doesnt work if there are special files like socket files in the src dir.
|
173
|
+
# Instead of using this hack https://bugs.ruby-lang.org/issues/10104
|
174
|
+
# Using rsync to perform the copy.
|
175
|
+
src.chop! if src.ends_with?('/')
|
176
|
+
dest.chop! if dest.ends_with?('/')
|
177
|
+
check_rsync_installed!
|
178
|
+
# Ensures required trailing slashes
|
179
|
+
FileUtils.mkdir_p(File.dirname(dest))
|
180
|
+
sh "rsync -a --links --no-specials --no-devices #{Shellwords.escape(src)}/ #{Shellwords.escape(dest)}/"
|
181
|
+
end
|
182
|
+
|
183
|
+
@@rsync_installed = false
|
184
|
+
def check_rsync_installed!
|
185
|
+
return if @@rsync_installed # only check once
|
186
|
+
if system "type rsync > /dev/null 2>&1"
|
187
|
+
@@rsync_installed = true
|
188
|
+
else
|
189
|
+
raise "ERROR: Rsync is required. Rsync does not seem to be installed.".color(:red)
|
190
|
+
end
|
178
191
|
end
|
179
192
|
end
|
180
193
|
end
|
data/lib/lono/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lono
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.3.
|
4
|
+
version: 7.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|