From 124effd45a26c90739c7ac4b9ca87e2a41a4debe Mon Sep 17 00:00:00 2001 From: Kevin Formsma Date: Wed, 21 Apr 2021 17:40:28 -0400 Subject: [PATCH 1/2] Update SAM transform to handle ReservedConcurrentExecutions parameter --- lib/cfn-model/transforms/serverless.rb | 5 +++++ spec/test_templates/yaml/sam/globals.yml | 1 + spec/transforms/serverless_spec.rb | 7 +++++++ 3 files changed, 13 insertions(+) diff --git a/lib/cfn-model/transforms/serverless.rb b/lib/cfn-model/transforms/serverless.rb index 8289027..f8f97f8 100644 --- a/lib/cfn-model/transforms/serverless.rb +++ b/lib/cfn-model/transforms/serverless.rb @@ -93,6 +93,7 @@ def serverless_function_properties(cfn_hash, serverless_function, fn_name, with_ handler: serverless_function_property(serverless_function, cfn_hash, 'Handler'), role: format_function_role(serverless_function, fn_name), runtime: serverless_function_property(serverless_function, cfn_hash, 'Runtime'), + reserved_concurrent_executions: serverless_function_property(serverless_function, cfn_hash, 'ReservedConcurrentExecutions'), with_line_numbers: with_line_numbers } @@ -118,6 +119,7 @@ def replace_serverless_function(cfn_hash, resource_name, with_line_numbers) code_key: lambda_fn_params[:code_key], role: lambda_fn_params[:role], runtime: lambda_fn_params[:runtime], + reserved_concurrent_executions: lambda_fn_params[:reserved_concurrent_executions], with_line_numbers: lambda_fn_params[:with_line_numbers] ) unless serverless_function['Properties']['Role'] @@ -223,6 +225,7 @@ def lambda_function(handler:, code_key: nil, role:, runtime:, + reserved_concurrent_executions:, with_line_numbers: false) fn_resource = { 'Type' => format_resource_type('AWS::Lambda::Function', -1, with_line_numbers), @@ -232,6 +235,8 @@ def lambda_function(handler:, 'Runtime' => runtime } } + fn_resource['Properties']['ReservedConcurrentExecutions'] = reserved_concurrent_executions unless reserved_concurrent_executions.nil? + lambda_function_code(fn_resource, code_bucket, code_key) end diff --git a/spec/test_templates/yaml/sam/globals.yml b/spec/test_templates/yaml/sam/globals.yml index 9ab7a90..c6a5191 100644 --- a/spec/test_templates/yaml/sam/globals.yml +++ b/spec/test_templates/yaml/sam/globals.yml @@ -22,5 +22,6 @@ Resources: FunctionName: !Sub "${Site}-Function" Handler: "com.test.Function::handleRequest" Tracing: Active + ReservedConcurrentExecutions: 1 Tags: warmup: True diff --git a/spec/transforms/serverless_spec.rb b/spec/transforms/serverless_spec.rb index c81938b..43cdccb 100644 --- a/spec/transforms/serverless_spec.rb +++ b/spec/transforms/serverless_spec.rb @@ -60,6 +60,9 @@ ).to( eq 'AWS::Lambda::Function' ) + expect( + actual_cfn_model.raw_model['Resources']['MyServerlessFunctionLogicalID']['Properties'] + ).not_to include('ReservedConcurrentExecutions') expect( actual_cfn_model.raw_model['Resources']['MyServerlessFunctionLogicalID'].key?('Metadata') ).to be false @@ -92,6 +95,10 @@ global_endpoint_configuration = actual_cfn_model.globals['Api'].endpointConfiguration global_runtime = actual_cfn_model.globals['Function'].runtime + expect( + actual_cfn_model.raw_model['Resources']['SomeFunction']['Properties'] + ).to include('ReservedConcurrentExecutions') + expect(actual_bucket).to eq expected_bucket expect(actual_key).to eq expected_key expect(actual_runtime).to eq expected_runtime From e51fe5645a68c3b6bc11757ff4f924f4def47bd4 Mon Sep 17 00:00:00 2001 From: Kevin Formsma Date: Wed, 21 Apr 2021 17:47:46 -0400 Subject: [PATCH 2/2] Updates to primary GH actions pipeline --- .github/workflows/gempush.yml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/gempush.yml b/.github/workflows/gempush.yml index 3f45263..78b3964 100644 --- a/.github/workflows/gempush.yml +++ b/.github/workflows/gempush.yml @@ -9,19 +9,18 @@ jobs: commit: name: Commit runs-on: ubuntu-latest + strategy: + fail-fast: false # Allows both ruby versions to run before failing + matrix: + ruby: ['2.5', '3.0'] steps: - uses: actions/checkout@master - - name: Set up Ruby 2.5 - uses: actions/setup-ruby@v1 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 with: - ruby-version: 2.5.x - - name: Install Bundler - run: gem install bundler - - name: Which bundler? - run: bundle -v - - name: Bundle install - run: bundle check || bundle install + ruby-version: ${{ matrix.ruby }} + bundler-cache: true #- name: Rubocop lint # run: bundle exec rubocop -D - name: Rspec tests @@ -44,7 +43,7 @@ jobs: rubygems_api_key: ${{secrets.rubygems_api_key}} - name: Create release with changelog id: gh_release - uses: release-drafter/release-drafter@f677696 + uses: release-drafter/release-drafter@v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: