From d0a43e50b1d6c8b3110f6d3d036daa332258e0f3 Mon Sep 17 00:00:00 2001 From: Jeremy Walker Date: Tue, 19 Apr 2022 16:22:04 +0100 Subject: [PATCH 1/2] Remove s3 requirement --- .rubocop.yml | 8 ++--- exercism_config.gemspec | 1 + lib/exercism-config.rb | 32 ++++++++++++-------- lib/exercism_config/setup_dynamodb_client.rb | 11 ------- lib/exercism_config/setup_ecr_client.rb | 11 ------- lib/exercism_config/setup_s3_client.rb | 11 ------- test/retrieve_config_test.rb | 1 + 7 files changed, 25 insertions(+), 50 deletions(-) delete mode 100644 lib/exercism_config/setup_dynamodb_client.rb delete mode 100644 lib/exercism_config/setup_ecr_client.rb delete mode 100644 lib/exercism_config/setup_s3_client.rb diff --git a/.rubocop.yml b/.rubocop.yml index 16040d3..8fd073b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -78,12 +78,12 @@ Style/ZeroLengthPredicate: Style/ClassAndModuleChildren: Enabled: false -Naming/FileName: - Exclude: - - "lib/exercism-config.rb" - Naming/VariableNumber: EnforcedStyle: snake_case +Naming/FileName: + Exclude: + - lib/exercism-config.rb + Style/LambdaCall: EnforcedStyle: braces diff --git a/exercism_config.gemspec b/exercism_config.gemspec index 2f886dd..daf1c68 100644 --- a/exercism_config.gemspec +++ b/exercism_config.gemspec @@ -40,6 +40,7 @@ Gem::Specification.new do |spec| # own Gemfile when using this. spec.add_development_dependency 'aws-sdk-ecr' spec.add_development_dependency 'aws-sdk-s3' + spec.add_development_dependency 'webrick' spec.add_development_dependency 'elasticsearch', '6.8.3' spec.add_development_dependency 'redis' end diff --git a/lib/exercism-config.rb b/lib/exercism-config.rb index cec7c1d..be739a1 100644 --- a/lib/exercism-config.rb +++ b/lib/exercism-config.rb @@ -4,19 +4,24 @@ require 'ostruct' require 'json' -require_relative 'exercism_config/environment' -require_relative 'exercism_config/determine_environment' -require_relative 'exercism_config/generate_aws_settings' -require_relative 'exercism_config/setup_dynamodb_client' -require_relative 'exercism_config/setup_ecr_client' -require_relative 'exercism_config/setup_s3_client' -require_relative 'exercism_config/retrieve_config' -require_relative 'exercism_config/retrieve_secrets' - -require_relative 'exercism_config/version' -require_relative 'exercism/config' -require_relative 'exercism/secrets' -require_relative 'exercism/tooling_job' +# require_relative 'exercism_config/environment' +# require_relative 'exercism_config/determine_environment' +# require_relative 'exercism_config/generate_aws_settings' +# require_relative 'exercism_config/setup_dynamodb_client' +# require_relative 'exercism_config/setup_ecr_client' +# require_relative 'exercism_config/setup_s3_client' +# require_relative 'exercism_config/retrieve_config' +# require_relative 'exercism_config/retrieve_secrets' + +# require_relative 'exercism_config/version' +# require_relative 'exercism/config' +# require_relative 'exercism/secrets' +# require_relative 'exercism/tooling_job' + +require "zeitwerk" +loader = Zeitwerk::Loader.for_gem +loader.ignore(__FILE__) +loader.setup module Exercism class ConfigError < RuntimeError; end @@ -42,6 +47,7 @@ def self.dynamodb_client end def self.s3_client + require 'webrick' require 'aws-sdk-s3' Aws::S3::Client.new( ExercismConfig::GenerateAwsSettings.().merge( diff --git a/lib/exercism_config/setup_dynamodb_client.rb b/lib/exercism_config/setup_dynamodb_client.rb deleted file mode 100644 index 58734eb..0000000 --- a/lib/exercism_config/setup_dynamodb_client.rb +++ /dev/null @@ -1,11 +0,0 @@ -module ExercismConfig - class SetupDynamoDBClient - include Mandate - - def call - puts "[DEPRECATION] ExercismConfig::SetupDynamoDBClient.() is deprecated. Please use Exercism.dynamodb_client" - - Exercism.dynamodb_client - end - end -end diff --git a/lib/exercism_config/setup_ecr_client.rb b/lib/exercism_config/setup_ecr_client.rb deleted file mode 100644 index 49ced66..0000000 --- a/lib/exercism_config/setup_ecr_client.rb +++ /dev/null @@ -1,11 +0,0 @@ -module ExercismConfig - class SetupECRClient - include Mandate - - def call - puts "[DEPRECATION] ExercismConfig::SetupECRClient.() is deprecated. Please use Exercism.ecr_client" - - Exercism.ecr_client - end - end -end diff --git a/lib/exercism_config/setup_s3_client.rb b/lib/exercism_config/setup_s3_client.rb deleted file mode 100644 index 7de2e63..0000000 --- a/lib/exercism_config/setup_s3_client.rb +++ /dev/null @@ -1,11 +0,0 @@ -module ExercismConfig - class SetupS3Client - include Mandate - - def call - puts "[DEPRECATION] ExercismConfig::SetupS3Client.() is deprecated. Please use Exercism.s3_client" - - Exercism.s3_client - end - end -end diff --git a/test/retrieve_config_test.rb b/test/retrieve_config_test.rb index 92cd995..6bfbb0f 100644 --- a/test/retrieve_config_test.rb +++ b/test/retrieve_config_test.rb @@ -31,6 +31,7 @@ def test_config_for_production def test_config_for_development Exercism.stubs(env: ExercismConfig::Environment.new(:development)) config = ExercismConfig::RetrieveConfig.() + p config assert_includes %w[ mysql localhost From 03ae6c6c33eef4e5bb3c6f8b48e3f4f5d2db6111 Mon Sep 17 00:00:00 2001 From: Erik Schierboom Date: Thu, 21 Apr 2022 14:16:47 +0200 Subject: [PATCH 2/2] Add matrix --- .github/workflows/tests.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 06483dc..843b834 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -8,7 +8,13 @@ on: jobs: test: - runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + os: ['ubuntu-20.04'] + ruby-version: ['3.0', '3.1'] + + runs-on: ${{ matrix.os }} services: aws: @@ -36,7 +42,7 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@168d6a54b412713c0ed60998a78093a270ca8d84 with: - ruby-version: '3.0' + ruby-version: ${{ matrix.ruby-version }} bundler-cache: true ###