From a2e201db71f4b8e3ef05f3898e63bbea1b07b741 Mon Sep 17 00:00:00 2001 From: Nova Date: Mon, 3 May 2021 19:48:04 +0530 Subject: [PATCH] #38 Added example for pg using ruby2.7 and updated testcases --- .../Gemfile | 0 .../handler.rb | 0 .../serverless.yml | 2 +- .../use-docker-with-yums-pg-ruby2.7/Gemfile | 2 ++ .../handler.rb | 8 ++++++ .../serverless.yml | 26 +++++++++++++++++++ test/test.js | 10 ++++--- 7 files changed, 44 insertions(+), 4 deletions(-) rename examples/{use-docker-with-yums => use-docker-with-yums-pg-ruby2.5}/Gemfile (100%) rename examples/{use-docker-with-yums => use-docker-with-yums-pg-ruby2.5}/handler.rb (100%) rename examples/{use-docker-with-yums => use-docker-with-yums-pg-ruby2.5}/serverless.yml (86%) create mode 100644 examples/use-docker-with-yums-pg-ruby2.7/Gemfile create mode 100644 examples/use-docker-with-yums-pg-ruby2.7/handler.rb create mode 100644 examples/use-docker-with-yums-pg-ruby2.7/serverless.yml diff --git a/examples/use-docker-with-yums/Gemfile b/examples/use-docker-with-yums-pg-ruby2.5/Gemfile similarity index 100% rename from examples/use-docker-with-yums/Gemfile rename to examples/use-docker-with-yums-pg-ruby2.5/Gemfile diff --git a/examples/use-docker-with-yums/handler.rb b/examples/use-docker-with-yums-pg-ruby2.5/handler.rb similarity index 100% rename from examples/use-docker-with-yums/handler.rb rename to examples/use-docker-with-yums-pg-ruby2.5/handler.rb diff --git a/examples/use-docker-with-yums/serverless.yml b/examples/use-docker-with-yums-pg-ruby2.5/serverless.yml similarity index 86% rename from examples/use-docker-with-yums/serverless.yml rename to examples/use-docker-with-yums-pg-ruby2.5/serverless.yml index f0c5140..6d84ec5 100644 --- a/examples/use-docker-with-yums/serverless.yml +++ b/examples/use-docker-with-yums-pg-ruby2.5/serverless.yml @@ -1,4 +1,4 @@ -service: use-docker-with-yums +service: use-docker-with-yums-pg-ruby2.5 plugins: - serverless-ruby-layer diff --git a/examples/use-docker-with-yums-pg-ruby2.7/Gemfile b/examples/use-docker-with-yums-pg-ruby2.7/Gemfile new file mode 100644 index 0000000..a3d056b --- /dev/null +++ b/examples/use-docker-with-yums-pg-ruby2.7/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'pg' \ No newline at end of file diff --git a/examples/use-docker-with-yums-pg-ruby2.7/handler.rb b/examples/use-docker-with-yums-pg-ruby2.7/handler.rb new file mode 100644 index 0000000..03c1fd7 --- /dev/null +++ b/examples/use-docker-with-yums-pg-ruby2.7/handler.rb @@ -0,0 +1,8 @@ +require 'pg' + +def hello(event:, context:) + { statusCode: 200, body: { + "pg_version": PG.library_version + } + } +end diff --git a/examples/use-docker-with-yums-pg-ruby2.7/serverless.yml b/examples/use-docker-with-yums-pg-ruby2.7/serverless.yml new file mode 100644 index 0000000..3c4e02b --- /dev/null +++ b/examples/use-docker-with-yums-pg-ruby2.7/serverless.yml @@ -0,0 +1,26 @@ +service: use-docker-with-yums-pg-ruby2.7 + +plugins: + - serverless-ruby-layer + +custom: + rubyLayer: + use_docker: true + docker_yums: + - postgresql-devel + native_libs: + - /usr/lib64/libpq.so.5 + - /usr/lib64/libldap_r-2.4.so.2 + - /usr/lib64/liblber-2.4.so.2 + - /usr/lib64/libsasl2.so.3 + - /usr/lib64/libssl3.so + - /usr/lib64/libsmime3.so + - /usr/lib64/libnss3.so + +provider: + name: aws + runtime: ruby2.7 + +functions: + hello: + handler: handler.hello diff --git a/test/test.js b/test/test.js index 16c556c..c76b925 100644 --- a/test/test.js +++ b/test/test.js @@ -15,10 +15,14 @@ let test_data = [ '/gems/mini_portile2/', '/gems/nokogiri/', '/gems/public_suffix/', '/gems/rake/', '/gems/unf/', '/gems/unf_ext/' ], function_files: ['handler.rb'], include_functions: ['Hello'], exclude_functions:[] }, - { folder: 'use-docker-with-yums', gem_zip_dirs: [ '/', '/build_info/', '/doc/', '/extensions/', '/gems/', + { folder: 'use-docker-with-yums-pg-ruby2.5', gem_zip_dirs: [ '/', '/build_info/', '/doc/', '/extensions/', '/gems/', '/specifications/', '/gems/pg/', '/extensions/x86_64-linux/', 'lib/', 'lib/libpq.so.5' ], function_files: ['handler.rb'], include_functions: ['Hello'], exclude_functions:[] }, + { folder: 'use-docker-with-yums-pg-ruby2.7', gem_zip_dirs: [ '/', '/build_info/', '/doc/', '/extensions/', '/gems/', '/plugins/', + '/specifications/', '/gems/pg/', '/extensions/x86_64-linux/', 'lib/', 'lib/libpq.so.5', 'lib/liblber', 'lib/libldap_r', 'lib/libnss3.so', 'lib/libsasl2.so.3', 'lib/libsmime3.so', 'lib/libssl3.so' ], + function_files: ['handler.rb'], include_functions: ['Hello'], exclude_functions:[] }, + { folder: 'use-docker-file', gem_zip_dirs: [ '/', '/build_info/', '/doc/', '/extensions/', '/gems/', '/specifications/', '/gems/pg/', '/extensions/x86_64-linux/', 'lib/', 'lib/libpq.so.5' ], function_files: ['handler.rb'], include_functions: ['Hello'], exclude_functions:[] }, @@ -82,7 +86,7 @@ describe('serverless package', function () { .then(function(data){ assert.deepEqual(function_files,data) }) - run_time ='2.5' + run_time = folder.endsWith('2.7')? '2.7': '2.5' value = readZip(layer_zip_path) .then(function(data){ if (!check_version) { @@ -94,7 +98,7 @@ describe('serverless package', function () { assert.deepEqual(serverless_config['service']['layers']['gem']['package']['artifact'], path.resolve(layer_zip_path)) cloud_resource = serverless_config['service']['provider']['compiledCloudFormationTemplate']['Resources'] const {Content, ...others} = cloud_resource['GemLambdaLayer']['Properties'] - assert.deepEqual(others,{CompatibleRuntimes: ['ruby2.5'], + assert.deepEqual(others,{CompatibleRuntimes: ['ruby'+run_time], Description: 'Ruby gem generated by serverless-ruby-bundler', LayerName: `${folder}-dev-ruby-bundle` })