Class: LambdaLayerCake::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/lambda-layer-cake.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(version) ⇒ Builder

Returns a new instance of Builder.



7
8
9
# File 'lib/lambda-layer-cake.rb', line 7

def initialize(version)
  @version = version
end

Instance Attribute Details

#versionObject (readonly)

Returns the value of attribute version.



5
6
7
# File 'lib/lambda-layer-cake.rb', line 5

def version
  @version
end

Instance Method Details

#build_layer!Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/lambda-layer-cake.rb', line 15

def build_layer!
  FileUtils.cp(%w{Gemfile Gemfile.lock system-packages.txt}.select {|f| File.exist?(f) }, inputs_dir!)

  cmd = %W{docker run --rm
    -v #{inputs_dir!}:/tmp/inputs 
    -v #{outputs_dir!}:/tmp/outputs 
    -v #{tools_dir}:/var/task 
    lambci/lambda:build-ruby2.5 ruby build_ruby.rb}
  STDERR.puts("Excuting cmd: #{cmd.join(' ')}")
  system(*cmd) or raise
end

#build_rails!Object



38
39
40
# File 'lib/lambda-layer-cake.rb', line 38

def build_rails!

end

#clean!Object



11
12
13
# File 'lib/lambda-layer-cake.rb', line 11

def clean!
  FileUtils.rm_r(outputs_dir!)
end

#zip_layer!Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/lambda-layer-cake.rb', line 27

def zip_layer! 
  pwd = Dir.pwd
  begin
    Dir.chdir(outputs_dir!)
    cmd = *%W{zip -r #{File.join(build_dir!, "layer-#{version}.zip")} lib ruby}
    system(*cmd) or raise
  ensure
    Dir.chdir(pwd)
  end
end