Method: Jets::Builders::LambdaLayer#replace_compiled_gems

Defined in:
lib/jets/builders/lambda_layer.rb

#replace_compiled_gemsObject

replace_compiled_gems:

remove binary gems in vendor/gems/ruby/2.5.0
extract binary gems in opt/ruby/gems/2.5.0
move binary gems from opt/ruby/gems/2.5.0 to vendor/gems/ruby/2.5.0

After this point, gems have been replace in stage/code/vendor/gems with their binary extensions: a good state. This method moves these gems to the Lambda Layers structure and creates a symlinks to it. First:

from stage/code/vendor/gems/ruby/2.5.0
to stage/opt/ruby/gems/2.5.0

Then:

stage/code/vendor/gems/ruby/2.5.0 -> /opt/ruby/gems/2.5.0


58
59
60
61
62
63
64
65
66
67
# File 'lib/jets/builders/lambda_layer.rb', line 58

def replace_compiled_gems
  project_root = "#{stage_area}/opt"
  headline "Replacing compiled gems with AWS Lambda Linux compiled versions: #{project_root}"
  options = {
    s3: "lambdagems2",
    build_root: cache_area, # used in jets-gems
    project_root: project_root, # used in gem_replacer and jets-gems
  }
  GemReplacer.new(options).run
end