moneta 1.4.1 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +418 -0
  3. data/CHANGES +4 -0
  4. data/Gemfile +1 -1
  5. data/README.md +16 -13
  6. data/lib/moneta/pool.rb +26 -6
  7. data/lib/moneta/version.rb +1 -1
  8. data/spec/active_support/cache_moneta_store_spec.rb +13 -13
  9. data/spec/helper.rb +14 -1
  10. data/spec/moneta/adapters/activerecord/adapter_activerecord_existing_connection_spec.rb +3 -1
  11. data/spec/moneta/adapters/activerecord/adapter_activerecord_spec.rb +15 -7
  12. data/spec/moneta/adapters/activerecord/standard_activerecord_spec.rb +5 -2
  13. data/spec/moneta/adapters/activerecord/standard_activerecord_with_expires_spec.rb +5 -2
  14. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_spec.rb +3 -3
  15. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_with_default_expires_spec.rb +2 -2
  16. data/spec/moneta/adapters/datamapper/adapter_datamapper_spec.rb +25 -8
  17. data/spec/moneta/adapters/datamapper/standard_datamapper_spec.rb +2 -2
  18. data/spec/moneta/adapters/datamapper/standard_datamapper_with_expires_spec.rb +2 -2
  19. data/spec/moneta/adapters/datamapper/standard_datamapper_with_repository_spec.rb +2 -2
  20. data/spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_spec.rb +13 -3
  21. data/spec/moneta/adapters/memcached/native/adapter_memcached_native_spec.rb +13 -3
  22. data/spec/moneta/adapters/mongo/adapter_mongo_with_default_expires_spec.rb +1 -1
  23. data/spec/moneta/adapters/redis/adapter_redis_spec.rb +13 -3
  24. data/spec/moneta/adapters/redis/standard_redis_spec.rb +8 -1
  25. data/spec/moneta/adapters/sequel/adapter_sequel_spec.rb +4 -4
  26. data/spec/moneta/adapters/sequel/helper.rb +10 -5
  27. data/spec/moneta/adapters/sequel/standard_sequel_spec.rb +1 -1
  28. data/spec/moneta/adapters/sequel/standard_sequel_with_expires_spec.rb +1 -1
  29. data/spec/moneta/adapters/sqlite/adapter_sqlite_spec.rb +1 -1
  30. data/spec/moneta/adapters/sqlite/standard_sqlite_spec.rb +1 -1
  31. data/spec/moneta/adapters/sqlite/standard_sqlite_with_expires_spec.rb +1 -1
  32. data/spec/moneta/proxies/pool/pool_spec.rb +31 -3
  33. metadata +7 -15
  34. data/.travis.yml +0 -146
  35. data/spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_with_default_expires_spec.rb +0 -15
  36. data/spec/moneta/adapters/memcached/native/adapter_memcached_native_with_default_expires_spec.rb +0 -15
  37. data/spec/moneta/adapters/redis/adapter_redis_with_default_expires_spec.rb +0 -10
  38. data/spec/moneta/proxies/proxy/proxy_redis_spec.rb +0 -13
@@ -1,4 +1,4 @@
1
- describe 'standard_datamapper_with_repository', broken: defined?(JRUBY_VERSION), adapter: :DataMapper do
1
+ describe 'standard_datamapper_with_repository', broken: defined?(JRUBY_VERSION), adapter: :DataMapper, mysql: true do
2
2
  before :all do
3
3
  require 'dm-core'
4
4
 
@@ -9,7 +9,7 @@ describe 'standard_datamapper_with_repository', broken: defined?(JRUBY_VERSION),
9
9
  moneta_store :DataMapper do
10
10
  {
11
11
  repository: :repo,
12
- setup: "mysql://#{mysql_username}:#{mysql_password}@localhost/#{mysql_database1}",
12
+ setup: "mysql://#{mysql_username}:#{mysql_password}@#{mysql_host}:#{mysql_port}/#{mysql_database1}",
13
13
  table: "simple_datamapper_with_repository"
14
14
  }
15
15
  end
@@ -7,9 +7,19 @@ describe 'adapter_memcached_dalli', retry: 3, adapter: :Memcached do
7
7
 
8
8
  include_context :start_memcached, 11212
9
9
 
10
- moneta_build do
11
- Moneta::Adapters::MemcachedDalli.new(server: "127.0.0.1:11212")
10
+ describe 'without default expires' do
11
+ moneta_build do
12
+ Moneta::Adapters::MemcachedDalli.new(server: "127.0.0.1:11212")
13
+ end
14
+
15
+ moneta_specs ADAPTER_SPECS.with_native_expires
12
16
  end
13
17
 
14
- moneta_specs ADAPTER_SPECS.with_native_expires
18
+ describe 'with default expires' do
19
+ moneta_build do
20
+ Moneta::Adapters::MemcachedDalli.new(server: '127.0.0.1:11212', expires: min_ttl)
21
+ end
22
+
23
+ moneta_specs NATIVE_EXPIRY_SPECS.with_default_expires
24
+ end
15
25
  end
@@ -7,9 +7,19 @@ describe 'adapter_memcached_native', isolate: true, unstable: defined?(JRUBY_VER
7
7
 
8
8
  include_context :start_memcached, 11214
9
9
 
10
- moneta_build do
11
- Moneta::Adapters::MemcachedNative.new(server: "127.0.0.1:11214")
10
+ describe 'without default expires' do
11
+ moneta_build do
12
+ Moneta::Adapters::MemcachedNative.new(server: "127.0.0.1:11214")
13
+ end
14
+
15
+ moneta_specs ADAPTER_SPECS.with_native_expires
12
16
  end
13
17
 
14
- moneta_specs ADAPTER_SPECS.with_native_expires
18
+ describe 'with default expires' do
19
+ moneta_build do
20
+ Moneta::Adapters::MemcachedNative.new(server: '127.0.0.1:11214', expires: min_ttl)
21
+ end
22
+
23
+ moneta_specs NATIVE_EXPIRY_SPECS.with_default_expires
24
+ end
15
25
  end
@@ -1,6 +1,6 @@
1
1
  describe 'adapter_mongo_with_default_expires', isolate: true, adapter: :Mongo do
2
2
  let(:t_res) { 0.125 }
3
- let(:min_ttl) { t_res }
3
+ let(:min_ttl) { t_res * 4 }
4
4
 
5
5
  moneta_build do
6
6
  Moneta::Adapters::Mongo.new(
@@ -2,9 +2,19 @@ describe 'adapter_redis', adapter: :Redis do
2
2
  let(:t_res) { 0.125 }
3
3
  let(:min_ttl) { t_res }
4
4
 
5
- moneta_build do
6
- Moneta::Adapters::Redis.new(db: 6)
5
+ describe 'without default expiry' do
6
+ moneta_build do
7
+ Moneta::Adapters::Redis.new(host: redis_host, port: redis_port, db: 6)
8
+ end
9
+
10
+ moneta_specs ADAPTER_SPECS.with_each_key.with_native_expires
7
11
  end
8
12
 
9
- moneta_specs ADAPTER_SPECS.with_each_key.with_native_expires
13
+ describe 'with default expiry' do
14
+ moneta_build do
15
+ Moneta::Adapters::Redis.new(host: redis_host, port: redis_port, db: 6, expires: min_ttl)
16
+ end
17
+
18
+ moneta_specs NATIVE_EXPIRY_SPECS.with_default_expires
19
+ end
10
20
  end
@@ -2,6 +2,13 @@ describe 'standard_redis', adapter: :Redis do
2
2
  let(:t_res) { 0.125 }
3
3
  let(:min_ttl) { t_res }
4
4
 
5
- moneta_store :Redis, db: 4
5
+ moneta_store :Redis do
6
+ {
7
+ db: 4,
8
+ host: redis_host,
9
+ port: redis_port
10
+ }
11
+ end
12
+
6
13
  moneta_specs STANDARD_SPECS.with_native_expires.with_each_key
7
14
  end
@@ -5,7 +5,7 @@ describe ':Sequel adapter', adapter: :Sequel do
5
5
 
6
6
  specs = ADAPTER_SPECS.with_each_key.with_values(:nil)
7
7
 
8
- context 'with MySQL backend' do
8
+ context 'with MySQL backend', mysql: true do
9
9
  moneta_build do
10
10
  Moneta::Adapters::Sequel.new(opts.merge(db: mysql_uri))
11
11
  end
@@ -13,7 +13,7 @@ describe ':Sequel adapter', adapter: :Sequel do
13
13
  include_examples :adapter_sequel, specs
14
14
  end
15
15
 
16
- context "with SQLite backend" do
16
+ context "with SQLite backend", sqlite: true do
17
17
  moneta_build do
18
18
  Moneta::Adapters::Sequel.new(opts.merge(db: sqlite_uri('adapter_sequel.db')))
19
19
  end
@@ -21,7 +21,7 @@ describe ':Sequel adapter', adapter: :Sequel do
21
21
  include_examples :adapter_sequel, specs.without_concurrent
22
22
  end
23
23
 
24
- context "with Postgres backend" do
24
+ context "with Postgres backend", postgres: true do
25
25
  moneta_build do
26
26
  Moneta::Adapters::Sequel.new(opts.merge(postgres_options))
27
27
  end
@@ -37,7 +37,7 @@ describe ':Sequel adapter', adapter: :Sequel do
37
37
  include_examples :adapter_sequel, specs, optimize: false
38
38
  end
39
39
 
40
- context "with Postgres HStore backend" do
40
+ context "with Postgres HStore backend", postgres: true do
41
41
  moneta_build do
42
42
  Moneta::Adapters::Sequel.new(postgres_hstore_options)
43
43
  end
@@ -2,9 +2,11 @@ RSpec.shared_context :sequel do
2
2
  def mysql_uri database=nil
3
3
  database ||= mysql_database1
4
4
  if defined?(JRUBY_VERSION)
5
- "jdbc:mysql://localhost/#{database}?user=#{mysql_username}&useSSL=false"
5
+ uri = "jdbc:mysql://#{mysql_host}:#{mysql_port}/#{database}?user=#{mysql_username}&useSSL=false"
6
+ uri += "&password=#{mysql_password}" if mysql_password
7
+ uri
6
8
  else
7
- "mysql2://#{mysql_username}:@localhost/#{database}"
9
+ "mysql2://#{mysql_username}:#{mysql_password}@#{mysql_host}:#{mysql_port}/#{database}"
8
10
  end
9
11
  end
10
12
 
@@ -15,11 +17,14 @@ RSpec.shared_context :sequel do
15
17
  def postgres_options database=nil
16
18
  database ||= postgres_database1
17
19
  if defined?(JRUBY_VERSION)
18
- {db: "jdbc:postgresql://localhost/#{database}?user=#{postgres_username}"}
20
+ uri = "jdbc:postgresql://localhost/#{database}?user=#{postgres_username}"
21
+ uri += "&password=#{postgres_password}" if postgres_password
22
+ {db: uri}
19
23
  else
20
24
  {
21
25
  db: "postgres://localhost/#{database}",
22
- user: postgres_username
26
+ user: postgres_username,
27
+ password: postgres_password
23
28
  }
24
29
  end
25
30
  end
@@ -33,7 +38,7 @@ RSpec.shared_context :sequel do
33
38
  def h2_uri
34
39
  "jdbc:h2:" + tempdir
35
40
  end
36
- end
41
+ end
37
42
 
38
43
  RSpec.shared_examples :adapter_sequel do |specs, optimize: true|
39
44
  shared_examples :each_key_server do
@@ -1,6 +1,6 @@
1
1
  require_relative './helper.rb'
2
2
 
3
- describe 'standard_sequel', adapter: :Sequel do
3
+ describe 'standard_sequel', adapter: :Sequel, postgres: true do
4
4
  include_context :sequel
5
5
 
6
6
  moneta_store(:Sequel) { postgres_options.merge(table: "standard_sequel") }
@@ -1,6 +1,6 @@
1
1
  require_relative './helper.rb'
2
2
 
3
- describe 'standard_sequel_with_expires', adapter: :Sequel do
3
+ describe 'standard_sequel_with_expires', adapter: :Sequel, postgres: true do
4
4
  include_context :sequel
5
5
 
6
6
  let(:t_res) { 0.125 }
@@ -1,4 +1,4 @@
1
- describe 'adapter_sqlite', unsupported: defined?(JRUBY_VERSION), adapter: :Sqlite do
1
+ describe 'adapter_sqlite', unsupported: defined?(JRUBY_VERSION), adapter: :Sqlite, sqlite: true do
2
2
  moneta_build do
3
3
  Moneta::Adapters::Sqlite.new(file: File.join(tempdir, "adapter_sqlite"))
4
4
  end
@@ -1,4 +1,4 @@
1
- describe 'standard_sqlite', unsupported: defined?(JRUBY_VERSION), adapter: :Sqlite do
1
+ describe 'standard_sqlite', unsupported: defined?(JRUBY_VERSION), adapter: :Sqlite, sqlite: true do
2
2
  moneta_store :Sqlite do
3
3
  {file: File.join(tempdir, "standard_sqlite")}
4
4
  end
@@ -1,4 +1,4 @@
1
- describe 'standard_sqlite_with_expires', unsupported: defined?(JRUBY_VERSION), adapter: :Sqlite do
1
+ describe 'standard_sqlite_with_expires', unsupported: defined?(JRUBY_VERSION), adapter: :Sqlite, sqlite: true do
2
2
  let(:t_res) { 0.125 }
3
3
  let(:min_ttl) { 1 }
4
4
  use_timecop
@@ -1,6 +1,6 @@
1
1
  require 'timeout'
2
2
 
3
- describe "pool", proxy: :Pool do
3
+ describe "pool", proxy: :Pool, broken: ::Gem::Version.new(RUBY_ENGINE_VERSION) < ::Gem::Version.new('2.4.0') do
4
4
  describe "Moneta::Pool" do
5
5
  # To test the pool, we create the store once and pass the same object around
6
6
  # whenever a new store is requested.
@@ -153,7 +153,7 @@ describe "pool", proxy: :Pool do
153
153
  describe "closing stores after TTL expiry" do
154
154
  let(:num) { max || min + 10 }
155
155
 
156
- it "closes available stores after ttl" do
156
+ it "closes unneeded stores after ttl" do
157
157
  stores.each do |store|
158
158
  allow(store).to receive(:close)
159
159
  end
@@ -169,6 +169,32 @@ describe "pool", proxy: :Pool do
169
169
  end
170
170
  end
171
171
 
172
+ shared_examples :ttl_with_nonzero_min do |ttl:, min:, max: nil|
173
+ describe "TTL check" do
174
+ let(:num) { max || min + 10 }
175
+
176
+ # This is testing that a very specific bug is fixed - see
177
+ # https://github.com/moneta-rb/moneta/issues/197. A better long-term
178
+ # solution would be to have more granular tests of the functions in the
179
+ # PoolManager
180
+ it "doesn't cause a busy-loop when there are available stores" do
181
+ # Check a store in and out - now the manager needs to decide whether to close
182
+ # stores after ttl seconds.
183
+ store = subject.check_out
184
+ subject.check_in(store)
185
+ sleep ttl
186
+ expect(subject.stats[:available]).to be > 0
187
+
188
+ # needs to be less than the TTL, but otherwise not important.
189
+ sleep_time = ttl / 2.0
190
+ sleep sleep_time
191
+
192
+ # during the sleep, the pool manager should have been idle.
193
+ expect(subject.stats[:idle_time]).to be >= sleep_time
194
+ end
195
+ end
196
+ end
197
+
172
198
  shared_examples :timeout do |timeout, max:|
173
199
  describe "raising an error after timeout" do
174
200
  let(:num) { max }
@@ -233,6 +259,7 @@ describe "pool", proxy: :Pool do
233
259
  include_examples :min, 10
234
260
  include_examples :max, 20, timeout: 4
235
261
  include_examples :ttl, 1, min: 10, max: 20
262
+ include_examples :ttl_with_nonzero_min, ttl: 1, min: 10, max: 20
236
263
  include_examples :timeout, 4, max: 20
237
264
  end
238
265
 
@@ -243,6 +270,7 @@ describe "pool", proxy: :Pool do
243
270
  include_examples :min, 10
244
271
  include_examples :max, 10, timeout: 4
245
272
  include_examples :ttl, 2, min: 10, max: 10
273
+ include_examples :ttl_with_nonzero_min, ttl: 2, min: 10, max: 10
246
274
  include_examples :timeout, 4, max: 10
247
275
  end
248
276
 
@@ -292,7 +320,7 @@ describe "pool", proxy: :Pool do
292
320
  end
293
321
 
294
322
  it "raises a ShutdownError if the pool is stopped while waiting for a store" do
295
- # Exaust the pool
323
+ # Exhaust the pool
296
324
  store = stores.first
297
325
  allow(store).to receive(:close).once
298
326
  expect(subject.check_out).to eq store
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moneta
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Mendler
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-10-27 00:00:00.000000000 Z
14
+ date: 2021-05-11 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: parallel_tests
@@ -110,10 +110,10 @@ extra_rdoc_files:
110
110
  - SPEC.md
111
111
  - LICENSE
112
112
  files:
113
+ - ".github/workflows/ruby.yml"
113
114
  - ".gitignore"
114
115
  - ".rspec"
115
116
  - ".rubocop.yml"
116
- - ".travis.yml"
117
117
  - ".yardopts"
118
118
  - CHANGES
119
119
  - CONTRIBUTORS
@@ -299,10 +299,8 @@ files:
299
299
  - spec/moneta/adapters/lruhash/standard_lruhash_with_expires_spec.rb
300
300
  - spec/moneta/adapters/memcached/adapter_memcached_spec.rb
301
301
  - spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_spec.rb
302
- - spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_with_default_expires_spec.rb
303
302
  - spec/moneta/adapters/memcached/dalli/standard_memcached_dalli_spec.rb
304
303
  - spec/moneta/adapters/memcached/native/adapter_memcached_native_spec.rb
305
- - spec/moneta/adapters/memcached/native/adapter_memcached_native_with_default_expires_spec.rb
306
304
  - spec/moneta/adapters/memcached/native/standard_memcached_native_spec.rb
307
305
  - spec/moneta/adapters/memcached/standard_memcached_spec.rb
308
306
  - spec/moneta/adapters/memcached_helper.rb
@@ -324,7 +322,6 @@ files:
324
322
  - spec/moneta/adapters/pstore/standard_pstore_spec.rb
325
323
  - spec/moneta/adapters/pstore/standard_pstore_with_expires_spec.rb
326
324
  - spec/moneta/adapters/redis/adapter_redis_spec.rb
327
- - spec/moneta/adapters/redis/adapter_redis_with_default_expires_spec.rb
328
325
  - spec/moneta/adapters/redis/standard_redis_spec.rb
329
326
  - spec/moneta/adapters/restclient/adapter_restclient_spec.rb
330
327
  - spec/moneta/adapters/restclient/helper.rb
@@ -369,7 +366,6 @@ files:
369
366
  - spec/moneta/proxies/optionmerger/optionmerger_spec.rb
370
367
  - spec/moneta/proxies/pool/pool_spec.rb
371
368
  - spec/moneta/proxies/proxy/proxy_expires_memory_spec.rb
372
- - spec/moneta/proxies/proxy/proxy_redis_spec.rb
373
369
  - spec/moneta/proxies/shared/shared_tcp_spec.rb
374
370
  - spec/moneta/proxies/shared/shared_unix_spec.rb
375
371
  - spec/moneta/proxies/transformer/transformer_bencode_spec.rb
@@ -433,9 +429,9 @@ licenses:
433
429
  - MIT
434
430
  metadata:
435
431
  bug_tracker_uri: https://github.com/moneta-rb/moneta/issues
436
- changelog_uri: https://github.com/moneta-rb/moneta/blob/v1.4.1/CHANGES
437
- documentation_uri: https://www.rubydoc.info/gems/moneta/1.4.1
438
- source_code_uri: https://github.com/moneta-rb/moneta/tree/v1.4.1
432
+ changelog_uri: https://github.com/moneta-rb/moneta/blob/v1.4.2/CHANGES
433
+ documentation_uri: https://www.rubydoc.info/gems/moneta/1.4.2
434
+ source_code_uri: https://github.com/moneta-rb/moneta/tree/v1.4.2
439
435
  post_install_message:
440
436
  rdoc_options: []
441
437
  require_paths:
@@ -451,7 +447,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
451
447
  - !ruby/object:Gem::Version
452
448
  version: '0'
453
449
  requirements: []
454
- rubygems_version: 3.1.4
450
+ rubygems_version: 3.2.15
455
451
  signing_key:
456
452
  specification_version: 4
457
453
  summary: A unified interface to key/value stores, including Redis, Memcached, TokyoCabinet,
@@ -545,10 +541,8 @@ test_files:
545
541
  - spec/moneta/adapters/lruhash/standard_lruhash_with_expires_spec.rb
546
542
  - spec/moneta/adapters/memcached/adapter_memcached_spec.rb
547
543
  - spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_spec.rb
548
- - spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_with_default_expires_spec.rb
549
544
  - spec/moneta/adapters/memcached/dalli/standard_memcached_dalli_spec.rb
550
545
  - spec/moneta/adapters/memcached/native/adapter_memcached_native_spec.rb
551
- - spec/moneta/adapters/memcached/native/adapter_memcached_native_with_default_expires_spec.rb
552
546
  - spec/moneta/adapters/memcached/native/standard_memcached_native_spec.rb
553
547
  - spec/moneta/adapters/memcached/standard_memcached_spec.rb
554
548
  - spec/moneta/adapters/memcached_helper.rb
@@ -570,7 +564,6 @@ test_files:
570
564
  - spec/moneta/adapters/pstore/standard_pstore_spec.rb
571
565
  - spec/moneta/adapters/pstore/standard_pstore_with_expires_spec.rb
572
566
  - spec/moneta/adapters/redis/adapter_redis_spec.rb
573
- - spec/moneta/adapters/redis/adapter_redis_with_default_expires_spec.rb
574
567
  - spec/moneta/adapters/redis/standard_redis_spec.rb
575
568
  - spec/moneta/adapters/restclient/adapter_restclient_spec.rb
576
569
  - spec/moneta/adapters/restclient/helper.rb
@@ -615,7 +608,6 @@ test_files:
615
608
  - spec/moneta/proxies/optionmerger/optionmerger_spec.rb
616
609
  - spec/moneta/proxies/pool/pool_spec.rb
617
610
  - spec/moneta/proxies/proxy/proxy_expires_memory_spec.rb
618
- - spec/moneta/proxies/proxy/proxy_redis_spec.rb
619
611
  - spec/moneta/proxies/shared/shared_tcp_spec.rb
620
612
  - spec/moneta/proxies/shared/shared_unix_spec.rb
621
613
  - spec/moneta/proxies/transformer/transformer_bencode_spec.rb
data/.travis.yml DELETED
@@ -1,146 +0,0 @@
1
- dist: xenial
2
- language: ruby
3
- rvm:
4
- - 2.7
5
- - 2.6
6
- - 2.5
7
- - 2.4
8
- - 2.3
9
- - jruby-9.2.9.0
10
- - rbx-3
11
- services:
12
- - mysql
13
- - riak
14
- - redis
15
- - cassandra
16
- - memcached
17
- - mongodb
18
- - postgresql
19
- addons:
20
- apt:
21
- sources:
22
- - cassandra
23
- - sourceline: "deb https://apache.bintray.com/couchdb-deb xenial main"
24
- key_url: https://couchdb.apache.org/repo/bintray-pubkey.asc
25
- - sourceline: "deb https://packagecloud.io/basho/riak/ubuntu/ xenial main"
26
- key_url: https://packagecloud.io/basho/riak/gpgkey
27
- packages:
28
- - cassandra
29
- - libkyotocabinet-dev
30
- - libleveldb-dev
31
- - liblzo2-dev
32
- - libtdb-dev
33
- - libtokyocabinet-dev
34
- - tokyotyrant
35
- - riak
36
- postgresql: '9.6'
37
- before_install:
38
- - gem install bundler
39
- - script/start-services
40
- cache:
41
- bundler: true
42
- directories:
43
- - downloads
44
- before_script:
45
- - mysql -e 'create database moneta;'
46
- - mysql -e 'create database moneta2;'
47
- - psql -c 'create database moneta1;' -U postgres
48
- - psql -c 'create extension hstore;' -U postgres moneta1
49
- - psql -c 'create database moneta2;' -U postgres
50
- # FIXME: remove this once moneta no longer generates hundreds of warnings
51
- # in Ruby 2.7
52
- - if echo $RUBY_VERSION | grep -q 'ruby-2.7'; then export RUBYOPT='-W0'; fi
53
- - export
54
- env:
55
- matrix:
56
- - SCRIPT='script/parallel-tests ~unstable --
57
- test/action_dispatch/session_moneta_store_test.rb
58
- spec/moneta/adapters/activerecord
59
- spec/moneta/adapters/localmemcache
60
- spec/moneta/adapters/activesupportcache
61
- spec/moneta/adapters/lruhash
62
- spec/moneta/adapters/gdbm
63
- spec/moneta/adapters/null
64
- spec/moneta/adapters/datamapper
65
- spec/moneta/adapters/pstore
66
- spec/moneta/adapters/daybreak
67
- spec/moneta/adapters/redis
68
- spec/moneta/adapters/dbm
69
- spec/moneta/adapters/restclient
70
- spec/moneta/adapters/file
71
- spec/moneta/adapters/fog
72
- spec/moneta/adapters/sdbm
73
- spec/moneta/adapters/tokyocabinet
74
- spec/moneta/adapters/leveldb
75
- spec/moneta/adapters/tokyotyrant
76
- spec/moneta/adapters/lmdb
77
- spec/moneta/adapters/yaml
78
- '
79
- - SCRIPT='script/parallel-tests ~unstable --
80
- spec/moneta/adapters/client
81
- spec/moneta/adapters/memory
82
- spec/moneta/adapters/cookie
83
- spec/moneta/adapters/mongo
84
- spec/moneta/adapters/tdb
85
- spec/moneta/adapters/kyotocabinet
86
- '
87
- - SCRIPT='script/parallel-tests ~unstable --
88
- spec/moneta/adapters/couch/standard_couch_spec.rb
89
- '
90
- - SCRIPT='script/parallel-tests ~unstable --
91
- spec/moneta/adapters/couch/standard_couch_with_expires_spec.rb
92
- '
93
- - SCRIPT='script/parallel-tests ~unstable --
94
- spec/moneta/adapters/memcached/dalli
95
- '
96
- - SCRIPT='script/parallel-tests ~unstable --
97
- spec/moneta/adapters/memcached/native
98
- spec/moneta/adapters/couch/adapter_couch_spec.rb
99
- '
100
- - SCRIPT='script/parallel-tests ~unstable --
101
- spec/moneta/adapters/cassandra/adapter_cassandra_spec.rb
102
- spec/moneta/adapters/cassandra/standard_cassandra_spec.rb
103
- '
104
- - SCRIPT='script/parallel-tests ~unstable --
105
- spec/moneta/adapters/cassandra/adapter_cassandra_with_default_expires_spec.rb
106
- spec/moneta/adapters/hashfile
107
- spec/moneta/adapters/sqlite
108
- spec/moneta/adapters/sequel
109
- '
110
- - SCRIPT='script/parallel-tests ~unstable --
111
- spec/moneta/proxies
112
- '
113
- - SCRIPT='script/parallel-tests ~unstable --remainder'
114
- - SCRIPT='script/parallel-tests unstable'
115
- - SCRIPT='script/benchmarks uniform_small'
116
- - SCRIPT='script/benchmarks uniform_medium'
117
- - SCRIPT='script/benchmarks uniform_large'
118
- - SCRIPT='script/benchmarks normal_small'
119
- - SCRIPT='script/benchmarks normal_medium'
120
- - SCRIPT='script/benchmarks normal_large'
121
- - SCRIPT='rubocop lib'
122
- matrix:
123
- allow_failures:
124
- - rvm: rbx-3
125
- - env: SCRIPT='script/parallel-tests unstable'
126
- exclude:
127
- - rvm: 2.6
128
- env: SCRIPT='rubocop lib'
129
- - rvm: 2.5
130
- env: SCRIPT='rubocop lib'
131
- - rvm: 2.4
132
- env: SCRIPT='rubocop lib'
133
- - rvm: 2.3
134
- env: SCRIPT='rubocop lib'
135
- - rvm: 2.2
136
- env: SCRIPT='rubocop lib'
137
- - rvm: jruby-9.2.9.0
138
- env: SCRIPT='rubocop lib'
139
- - rvm: rbx-3
140
- env: SCRIPT='rubocop lib'
141
-
142
- script: "bundle exec $SCRIPT"
143
- branches:
144
- only:
145
- - master
146
- - travis