From 06cc372462bc87c2f79d503100eae313fef2477c Mon Sep 17 00:00:00 2001 From: TamarinEA Date: Thu, 5 Aug 2021 23:39:17 -0700 Subject: [PATCH] chore: add ruby 2.4 support --- .drone.yml | 95 ++++++++++++++----- .gitignore | 1 + Appraisals | 19 ++-- dip.yml | 5 +- docker-compose.yml | 6 ++ redis_counters-dumpers.gemspec | 3 +- .../lib/redis_counters/dumpers/engine_spec.rb | 2 +- spec/spec_helper.rb | 8 +- 8 files changed, 94 insertions(+), 45 deletions(-) diff --git a/.drone.yml b/.drone.yml index 3afeb43..2be140d 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,32 +1,83 @@ -build: - test: - image: abakpress/dind-testing - pull: true - privileged: true - volumes: - - /home/data/drone/images:/images - - /home/data/drone/gems:/bundle +name: build + +kind: pipeline +type: docker + +volumes: + - name: images + host: + path: /home/data/drone/images + - name: bundle + host: + path: /home/data/drone/gems + - name: keys + host: + path: /home/data/drone/key_cache + +spec_step_common: &spec_step_common + image: abakpress/dind-testing:1.0.3 + pull: if-not-exists + privileged: true + volumes: + - name: images + path: /images + - name: bundle + path: /bundle + - name: keys + path: /ssh_keys + commands: + - prepare-build + + - fetch-images + --image whilp/ssh-agent + --image abakpress/ruby-app:$RUBY_IMAGE_TAG + --image abakpress/postgres-db:$POSTGRES_IMAGE_TAG + --image redis:$REDIS_IMAGE_TAG + + - dip ssh add -T -v /ssh_keys -k /ssh_keys/id_rsa + - dip provision + - dip rspec + +steps: + - name: Tests Ruby 2.2 environment: - - COMPOSE_FILE_EXT=drone - - POSTGRES_IMAGE_TAG=9.6-latest - - RUBY_IMAGE_TAG=2.2-latest - commands: - - wrapdocker docker -v + COMPOSE_FILE_EXT: drone + DOCKER_RUBY_VERSION: 2.2 + RUBY_IMAGE_TAG: 2.2-latest + POSTGRES_IMAGE_TAG: 9.6-latest + REDIS_IMAGE_TAG: 4-alpine + RAILS_ENV: test + <<: *spec_step_common - - fetch-images - --image abakpress/ruby-app:$RUBY_IMAGE_TAG - --image abakpress/postgres-db:$POSTGRES_IMAGE_TAG + - name: Tests Ruby 2.3 + environment: + COMPOSE_FILE_EXT: drone + DOCKER_RUBY_VERSION: 2.3 + RUBY_IMAGE_TAG: 2.3-latest + POSTGRES_IMAGE_TAG: 9.6-latest + REDIS_IMAGE_TAG: 4-alpine + RAILS_ENV: test + <<: *spec_step_common - - dip provision - - dip rspec + - name: Tests Ruby 2.4 + environment: + COMPOSE_FILE_EXT: drone + DOCKER_RUBY_VERSION: 2.4 + RUBY_IMAGE_TAG: 2.4-latest + POSTGRES_IMAGE_TAG: 9.6-latest + REDIS_IMAGE_TAG: 4-alpine + RAILS_ENV: test + <<: *spec_step_common - release: - image: abakpress/gem-publication - pull: true + - name: release + image: abakpress/gem-publication:latest + pull: if-not-exists when: event: push branch: master + status: success volumes: - - /home/data/drone/rubygems:/root/.gem + - name: rubygems + path: /root/.gem commands: - release-gem --public diff --git a/.gitignore b/.gitignore index 9912a1a..96f082f 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ *.o *.a mkmf.log +/.idea/ diff --git a/Appraisals b/Appraisals index a057a62..e8dc2c5 100644 --- a/Appraisals +++ b/Appraisals @@ -1,14 +1,11 @@ -appraise 'rails3.2' do - gem 'activesupport', '~> 3.2.14' - gem 'activerecord', '~> 3.2.14' +if RUBY_VERSION < '2.4' + appraise 'rails4.0' do + gem 'activesupport', '~> 4.0.0' + gem 'activerecord', '~> 4.0.0' + end end -appraise 'rails4.0' do - gem 'activesupport', '~> 4.0.0' - gem 'activerecord', '~> 4.0.0' -end - -appraise 'rails4.1' do - gem 'activesupport', '~> 4.1.0' - gem 'activerecord', '~> 4.1.0' +appraise 'rails4.2' do + gem 'activesupport', '~> 4.2.0' + gem 'activerecord', '~> 4.2.0' end diff --git a/dip.yml b/dip.yml index b050a00..9ea5058 100644 --- a/dip.yml +++ b/dip.yml @@ -1,9 +1,10 @@ version: '1' environment: - DOCKER_RUBY_VERSION: 2.2 - RUBY_IMAGE_TAG: 2.2-latest + DOCKER_RUBY_VERSION: 2.4 + RUBY_IMAGE_TAG: 2.4-latest POSTGRES_IMAGE_TAG: 9.6-latest + REDIS_IMAGE_TAG: 4-alpine COMPOSE_FILE_EXT: development compose: diff --git a/docker-compose.yml b/docker-compose.yml index cb73b71..0dc6a8f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,11 +9,17 @@ services: - TEST_DB_HOST=db - TEST_DB_NAME=docker - TEST_DB_USERNAME=postgres + - TEST_REDIS_HOST=redis command: bash depends_on: - db + - redis db: image: abakpress/postgres-db:$POSTGRES_IMAGE_TAG environment: - POSTGRES_DB=docker + + redis: + image: redis:$REDIS_IMAGE_TAG + command: 'redis-server --bind 0.0.0.0' diff --git a/redis_counters-dumpers.gemspec b/redis_counters-dumpers.gemspec index b0b6fab..9b152c9 100644 --- a/redis_counters-dumpers.gemspec +++ b/redis_counters-dumpers.gemspec @@ -26,10 +26,9 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'bundler', '>= 1.7' spec.add_development_dependency 'rake', '>= 10.0' spec.add_development_dependency 'rspec', '>= 3.2' - spec.add_development_dependency 'rspec-rails', '>= 3.2' + spec.add_development_dependency 'rspec-rails', '~> 3.9.1' spec.add_development_dependency 'appraisal', '>= 1.0.2' spec.add_development_dependency 'mock_redis' spec.add_development_dependency 'combustion' spec.add_development_dependency 'pry-byebug' - spec.add_development_dependency 'test-unit' end diff --git a/spec/lib/redis_counters/dumpers/engine_spec.rb b/spec/lib/redis_counters/dumpers/engine_spec.rb index 193cf1b..d20e219 100644 --- a/spec/lib/redis_counters/dumpers/engine_spec.rb +++ b/spec/lib/redis_counters/dumpers/engine_spec.rb @@ -60,7 +60,7 @@ end before do - allow(dumper).to receive(:redis_session).and_return(MockRedis.new) + allow(dumper).to receive(:redis_session).and_return(Redis.new(host: ENV['TEST_REDIS_HOST'])) end describe '#process!' do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index f8c42fc..ca1621b 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,19 +1,13 @@ require 'redis_counters/dumpers' -if ::ActiveRecord::VERSION::MAJOR < 4 - require 'activerecord-postgres-hstore' - require 'simple_hstore_accessor' -end - require 'combustion' Combustion.initialize! :active_record require 'rspec/rails' require 'pry-byebug' -require 'mock_redis' require 'redis' -Redis.current = MockRedis.new +Redis.current = Redis.new(host: ENV['TEST_REDIS_HOST']) RSpec.configure do |config| config.use_transactional_fixtures = true