ddtrace 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/.env +11 -0
  3. data/.gitignore +56 -0
  4. data/.rubocop.yml +43 -0
  5. data/Appraisals +65 -0
  6. data/Gemfile +3 -0
  7. data/LICENSE +24 -0
  8. data/README.md +119 -0
  9. data/Rakefile +103 -0
  10. data/circle.yml +68 -0
  11. data/ddtrace.gemspec +41 -0
  12. data/docker-compose.yml +33 -0
  13. data/docs/GettingStarted +352 -0
  14. data/gemfiles/contrib.gemfile +9 -0
  15. data/gemfiles/rails3_mysql2.gemfile +11 -0
  16. data/gemfiles/rails3_postgres.gemfile +10 -0
  17. data/gemfiles/rails3_postgres_redis.gemfile +11 -0
  18. data/gemfiles/rails4_mysql2.gemfile +9 -0
  19. data/gemfiles/rails4_postgres.gemfile +9 -0
  20. data/gemfiles/rails4_postgres_redis.gemfile +10 -0
  21. data/gemfiles/rails5_mysql2.gemfile +8 -0
  22. data/gemfiles/rails5_postgres.gemfile +8 -0
  23. data/gemfiles/rails5_postgres_redis.gemfile +9 -0
  24. data/lib/ddtrace.rb +63 -0
  25. data/lib/ddtrace/buffer.rb +77 -0
  26. data/lib/ddtrace/contrib/elasticsearch/core.rb +56 -0
  27. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +35 -0
  28. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +22 -0
  29. data/lib/ddtrace/contrib/rails/action_controller.rb +75 -0
  30. data/lib/ddtrace/contrib/rails/action_view.rb +121 -0
  31. data/lib/ddtrace/contrib/rails/active_record.rb +44 -0
  32. data/lib/ddtrace/contrib/rails/active_support.rb +115 -0
  33. data/lib/ddtrace/contrib/rails/core_extensions.rb +89 -0
  34. data/lib/ddtrace/contrib/rails/framework.rb +107 -0
  35. data/lib/ddtrace/contrib/rails/utils.rb +42 -0
  36. data/lib/ddtrace/contrib/redis/core.rb +72 -0
  37. data/lib/ddtrace/contrib/redis/patcher.rb +36 -0
  38. data/lib/ddtrace/contrib/redis/quantize.rb +30 -0
  39. data/lib/ddtrace/contrib/redis/tags.rb +19 -0
  40. data/lib/ddtrace/encoding.rb +65 -0
  41. data/lib/ddtrace/ext/app_types.rb +9 -0
  42. data/lib/ddtrace/ext/cache.rb +7 -0
  43. data/lib/ddtrace/ext/errors.rb +9 -0
  44. data/lib/ddtrace/ext/http.rb +11 -0
  45. data/lib/ddtrace/ext/net.rb +8 -0
  46. data/lib/ddtrace/ext/redis.rb +16 -0
  47. data/lib/ddtrace/ext/sql.rb +8 -0
  48. data/lib/ddtrace/monkey.rb +60 -0
  49. data/lib/ddtrace/pin.rb +62 -0
  50. data/lib/ddtrace/span.rb +163 -0
  51. data/lib/ddtrace/tracer.rb +180 -0
  52. data/lib/ddtrace/transport.rb +149 -0
  53. data/lib/ddtrace/utils.rb +9 -0
  54. data/lib/ddtrace/version.rb +9 -0
  55. data/lib/ddtrace/workers.rb +109 -0
  56. data/lib/ddtrace/writer.rb +119 -0
  57. metadata +187 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2a9186d275327ce22e549c851bfa05a3d35f2331
4
+ data.tar.gz: 80ddf28da3679f110f6c2b570ca2d7356ada9ce2
5
+ SHA512:
6
+ metadata.gz: e754f087c383bb50d2c4738fceee184b8766d5c880a2980005b0fee2ae36f301c843a0b88d873bc5e571f951e14c49a9de9b3598f708467b34b99e923b023202
7
+ data.tar.gz: 679c519b49988a592bb4c9ac434384fc2bea7d5ba7dc710596e097fa814a1064d6de1565748c966f7d715f3f3d319070ba0c5b330510555c6111a70024df5e86
data/.env ADDED
@@ -0,0 +1,11 @@
1
+ TEST_POSTGRES_PORT=55432
2
+ TEST_POSTGRES_USER=postgres
3
+ TEST_POSTGRES_PASSWORD=postgres
4
+ TEST_POSTGRES_DB=postgres
5
+ TEST_MYSQL_PORT=53306
6
+ TEST_MYSQL_ROOT_PASSWORD=root
7
+ TEST_MYSQL_PASSWORD=mysql
8
+ TEST_MYSQL_USER=mysql
9
+ TEST_ELASTICSEARCH_REST_PORT=49200
10
+ TEST_ELASTICSEARCH_NATIVE_PORT=49300
11
+ TEST_REDIS_PORT=46379
@@ -0,0 +1,56 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+ /log/
13
+
14
+ # Used by dotenv library to load environment variables.
15
+ # .env
16
+
17
+ ## Specific to RubyMotion:
18
+ .dat*
19
+ .repl_history
20
+ build/
21
+ *.bridgesupport
22
+ build-iPhoneOS/
23
+ build-iPhoneSimulator/
24
+
25
+ ## Specific to RubyMotion (use of CocoaPods):
26
+ #
27
+ # We recommend against adding the Pods directory to your .gitignore. However
28
+ # you should judge for yourself, the pros and cons are mentioned at:
29
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
30
+ #
31
+ # vendor/Pods/
32
+
33
+ ## Documentation cache and generated files:
34
+ /.yardoc/
35
+ /_yardoc/
36
+ /doc/
37
+ /rdoc/
38
+ /html/
39
+
40
+ ## Environment normalization:
41
+ /.bundle/
42
+ /vendor/bundle
43
+ /lib/bundler/man/
44
+
45
+ # for a library or gem, you might want to ignore these files since the code is
46
+ # intended to run in multiple environments; otherwise, check them in:
47
+ # Gemfile.lock
48
+ # .ruby-version
49
+ # .ruby-gemset
50
+
51
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
52
+ .rvmrc
53
+
54
+ # lock files
55
+ Gemfile.lock
56
+ gemfiles/*.lock
@@ -0,0 +1,43 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.1
3
+
4
+ # 80 characters is a nice goal, but not worth currently changing in existing
5
+ # code for the sake of changing it to conform to a length set in 1928 (IBM).
6
+ Metrics/LineLength:
7
+ Max: 124
8
+
9
+ # These exceptions are good goals to attain, and probably will over time,
10
+ # so periodic disabling and re-running to inspect values is suggested.
11
+
12
+ Metrics/AbcSize:
13
+ Max: 50
14
+
15
+ # TODO: As refactors continue, this should drop. However, the goal of
16
+ # 10 lines in a method may be a little lofty.
17
+ Metrics/MethodLength:
18
+ Max: 36
19
+
20
+ # TODO: this is not compliant with the Ruby community style guide. We
21
+ # should enable again this rule but it will change the public API because
22
+ # we're using set_ methods. We should work on that because also Rails
23
+ # honors this rule.
24
+ Style/AccessorMethodName:
25
+ Enabled: false
26
+
27
+ Style/MethodCallWithoutArgsParentheses:
28
+ Enabled: false
29
+
30
+ Style/RescueModifier:
31
+ Enabled: false
32
+
33
+ Style/NumericLiterals:
34
+ Enabled: false
35
+
36
+ Metrics/ClassLength:
37
+ Max: 120
38
+
39
+ Metrics/BlockLength:
40
+ Max: 42
41
+
42
+ Metrics/ParameterLists:
43
+ Enabled: false
@@ -0,0 +1,65 @@
1
+ appraise "rails3-postgres" do
2
+ gem "test-unit"
3
+ gem "rails", "3.2.22.5"
4
+ gem "pg", platform: :ruby
5
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
6
+ end
7
+
8
+ appraise "rails4-postgres" do
9
+ gem "rails", "4.2.7.1"
10
+ gem "pg", platform: :ruby
11
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
12
+ end
13
+
14
+ appraise "rails3-mysql2" do
15
+ gem "test-unit"
16
+ gem "rails", "3.2.22.5"
17
+ gem "mysql2", "0.3.21", platform: :ruby
18
+ gem "activerecord-mysql-adapter", platform: :ruby
19
+ gem 'activerecord-jdbcmysql-adapter', platform: :jruby
20
+ end
21
+
22
+ appraise "rails4-mysql2" do
23
+ gem "rails", "4.2.7.1"
24
+ gem "mysql2", platform: :ruby
25
+ gem 'activerecord-jdbcmysql-adapter', platform: :jruby
26
+ end
27
+
28
+ appraise "rails3-postgres-redis" do
29
+ gem "test-unit"
30
+ gem "rails", "3.2.22.5"
31
+ gem "pg", platform: :ruby
32
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
33
+ gem "redis-rails"
34
+ end
35
+
36
+ appraise "rails4-postgres-redis" do
37
+ gem "rails", "4.2.7.1"
38
+ gem "pg", platform: :ruby
39
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
40
+ gem "redis-rails"
41
+ end
42
+
43
+ if RUBY_VERSION >= "2.2.2" && RUBY_PLATFORM != "java"
44
+ appraise "rails5-postgres" do
45
+ gem "rails", "5.0.0.1"
46
+ gem "pg", platform: :ruby
47
+ end
48
+
49
+ appraise "rails5-mysql2" do
50
+ gem "rails", "5.0.0.1"
51
+ gem "mysql2", platform: :ruby
52
+ end
53
+
54
+ appraise "rails5-postgres-redis" do
55
+ gem "rails", "5.0.0.1"
56
+ gem "pg", platform: :ruby
57
+ gem "redis-rails"
58
+ end
59
+ end
60
+
61
+ appraise "contrib" do
62
+ gem "elasticsearch-transport"
63
+ gem "redis"
64
+ gem "hiredis"
65
+ end
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,24 @@
1
+ Copyright (c) 2016, Datadog <info@datadoghq.com>
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+ * Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+ * Redistributions in binary form must reproduce the above copyright
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
+ * Neither the name of Datadog nor the
12
+ names of its contributors may be used to endorse or promote products
13
+ derived from this software without specific prior written permission.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
19
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,119 @@
1
+ # dd-trace-rb
2
+
3
+ [![CircleCI](https://circleci.com/gh/DataDog/dd-trace-rb/tree/master.svg?style=svg&circle-token=b0bd5ef866ec7f7b018f48731bb495f2d1372cc1)](https://circleci.com/gh/DataDog/dd-trace-rb/tree/master)
4
+
5
+ ## Documentation
6
+
7
+ You can find the latest documentation in the Datadog's [private repository][docs]
8
+
9
+ [docs]: http://gems.datadoghq.com/trace/docs/
10
+
11
+ ## Getting started
12
+
13
+ ### Install
14
+
15
+ If you're using ``Bundler``, just update your ``Gemfile`` as follows:
16
+
17
+ ```ruby
18
+ source 'https://rubygems.org'
19
+
20
+ # tracing gem
21
+ gem 'ddtrace', :source => 'http://gems.datadoghq.com/trace/'
22
+ ```
23
+
24
+ ### Quickstart (manual instrumentation)
25
+
26
+ If you aren't using a supported framework instrumentation, you may want to to manually instrument your code.
27
+ Adding tracing to your code is very simple. As an example, let’s imagine we have a web server and we want
28
+ to trace requests to the home page:
29
+
30
+ ```ruby
31
+ require 'ddtrace'
32
+ require 'sinatra'
33
+ require 'activerecord'
34
+
35
+ # a generic tracer that you can use across your application
36
+ tracer = Datadog.tracer
37
+
38
+ get '/' do
39
+ tracer.trace('web.request') do |span|
40
+ # set some span metadata
41
+ span.service = 'my-web-site'
42
+ span.resource = '/'
43
+ span.set_tag('http.method', request.request_method)
44
+
45
+ # trace the activerecord call
46
+ tracer.trace('posts.fetch') do
47
+ @posts = Posts.order(created_at: :desc).limit(10)
48
+ end
49
+
50
+ # trace the template rendering
51
+ tracer.trace('template.render') do
52
+ erb :index
53
+ end
54
+ end
55
+ end
56
+ ```
57
+
58
+ ### Monkey patching
59
+
60
+ By default, our monkey-patching is not active, you need to
61
+ explicitly activate it by calling `Datadog::Monkey.patch_all`
62
+ or `Datadog::Monkey.patch_module`
63
+
64
+ This ultimately allows you to enable or disable tracing on a per-library basis.
65
+
66
+ The example below shows the Redis case, but any other non-rails library
67
+ should work the same way:
68
+
69
+ ```ruby
70
+
71
+ require 'redis'
72
+ require 'ddtrace'
73
+
74
+ Datadog::Monkey.patch_all # you need to explicitly patch it
75
+
76
+ # now do your Redis stuff, eg:
77
+ redis = Redis.new
78
+ redis.set 'foo', 'bar' # traced!
79
+ ```
80
+
81
+ ## Development
82
+
83
+ ### Testing
84
+
85
+ Configure your environment through:
86
+
87
+ $ bundle install
88
+ $ appraisal install
89
+
90
+ You can launch all tests using the following rake command:
91
+
92
+ $ rake test # tracer tests
93
+ $ appraisal rails<version>-<database>rake rails # tests Rails matrix
94
+ $ appraisal contrib rake contrib # tests other contrib libraries (Redis, ...)
95
+ $ appraisal contrib rake monkey # tests monkey patching
96
+
97
+ Available appraisals are:
98
+
99
+ * ``rails{3,4,5}-postgres``: Rails with PostgreSQL
100
+ * ``rails{3,4,5}-mysql2``: Rails with MySQL
101
+ * ``contrib``: Other contrib libraries (Redis, ...)
102
+
103
+ jRuby includes only Rails 3.x and 4.x because the current implementation of jdbc drivers, don't support
104
+ ActiveRecord 5.x.
105
+
106
+ The test suite requires many backing services (PostgreSQL, MySQL, Redis, ...) and we're using
107
+ ``docker`` and ``docker-compose`` to start these services in the CI.
108
+ To launch properly the test matrix, please [install docker][2] and [docker-compose][3] using
109
+ the instructions provided by your platform. Then launch them through:
110
+
111
+ $ docker-compose up -d
112
+
113
+ We also enforce the Ruby [community-driven style guide][1] through Rubocop. Simply launch:
114
+
115
+ $ rake rubocop
116
+
117
+ [1]: https://github.com/bbatsov/ruby-style-guide
118
+ [2]: https://www.docker.com/products/docker
119
+ [3]: https://www.docker.com/products/docker-compose
@@ -0,0 +1,103 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rubocop/rake_task'
3
+ require 'rake/testtask'
4
+ require 'rdoc/task'
5
+ require 'appraisal'
6
+
7
+ Rake::TestTask.new(:test) do |t|
8
+ t.libs << %w(test lib)
9
+ t.test_files = FileList['test/**/*_test.rb'].reject do |path|
10
+ path.include?('contrib') ||
11
+ path.include?('benchmark') ||
12
+ path.include?('redis') ||
13
+ path.include?('monkey_test.rb')
14
+ end
15
+ end
16
+
17
+ Rake::TestTask.new(:rails) do |t|
18
+ t.libs << %w(test lib)
19
+ t.test_files = FileList['test/contrib/rails/**/*_test.rb'].reject do |path|
20
+ path.include?('redis')
21
+ end
22
+ end
23
+
24
+ Rake::TestTask.new(:railsredis) do |t|
25
+ t.libs << %w(test lib)
26
+ t.test_files = FileList['test/contrib/rails/**/*redis*_test.rb']
27
+ end
28
+
29
+ Rake::TestTask.new(:contrib) do |t|
30
+ t.libs << %w(test lib)
31
+ t.test_files = FileList['test/contrib/**/*_test.rb'].reject do |path|
32
+ path.include?('rails') ||
33
+ path.include?('monkey_test.rb')
34
+ end
35
+ end
36
+
37
+ Rake::TestTask.new(:monkey) do |t|
38
+ t.libs << %w(test lib)
39
+ t.test_files = FileList['test/monkey_test.rb']
40
+ end
41
+
42
+ Rake::TestTask.new(:benchmark) do |t|
43
+ t.libs << %w(test lib)
44
+ t.test_files = FileList['test/benchmark_test.rb']
45
+ end
46
+
47
+ RuboCop::RakeTask.new(:rubocop) do |t|
48
+ t.patterns = ['lib/**/*.rb', 'test/**/*.rb', 'Gemfile', 'Rakefile']
49
+ end
50
+
51
+ RDoc::Task.new(:rdoc) do |doc|
52
+ doc.main = 'docs/GettingStarted'
53
+ doc.title = 'Datadog Ruby Tracer'
54
+ # TODO[manu]: include all lib/ folder, but only when all classes' docs are ready
55
+ doc.rdoc_files = FileList.new(%w(lib/ddtrace/tracer.rb lib/ddtrace/span.rb docs/**/*))
56
+ doc.rdoc_dir = 'html'
57
+ end
58
+
59
+ # Deploy tasks
60
+ S3_BUCKET = 'gems.datadoghq.com'.freeze
61
+ S3_DIR = ENV['S3_DIR']
62
+
63
+ desc 'create a new indexed repository'
64
+ task :'release:gem' do
65
+ raise 'Missing environment variable S3_DIR' if !S3_DIR || S3_DIR.empty?
66
+ # load existing deployed gems
67
+ sh "aws s3 cp --exclude 'docs/*' --recursive s3://#{S3_BUCKET}/#{S3_DIR}/ ./rubygems/"
68
+
69
+ # create folders
70
+ sh 'mkdir -p ./gems'
71
+ sh 'mkdir -p ./rubygems/gems/'
72
+ sh 'mkdir -p ./rubygems/quick/'
73
+
74
+ # copy previous builds
75
+ sh 'cp ./rubygems/gems/* ./gems/'
76
+
77
+ # build the gem
78
+ Rake::Task['build'].execute
79
+
80
+ # copy the output in the indexed folder
81
+ sh 'cp pkg/*.gem ./gems/'
82
+
83
+ # generate the gems index
84
+ sh 'gem generate_index'
85
+
86
+ # namespace everything under ./rubygems/
87
+ sh 'cp -r ./gems/* ./rubygems/gems/'
88
+ sh 'cp -r specs.* ./rubygems/'
89
+ sh 'cp -r latest_specs.* ./rubygems/'
90
+ sh 'cp -r prerelease_specs.* ./rubygems/'
91
+ sh 'cp -r ./quick/* ./rubygems/quick/'
92
+
93
+ # deploy a static gem registry
94
+ sh "aws s3 cp --recursive ./rubygems/ s3://#{S3_BUCKET}/#{S3_DIR}/"
95
+ end
96
+
97
+ desc 'release the docs website'
98
+ task :'release:docs' => :rdoc do
99
+ raise 'Missing environment variable S3_DIR' if !S3_DIR || S3_DIR.empty?
100
+ sh "aws s3 cp --recursive html/ s3://#{S3_BUCKET}/#{S3_DIR}/docs/"
101
+ end
102
+
103
+ task default: :test
@@ -0,0 +1,68 @@
1
+ machine:
2
+ services:
3
+ - docker
4
+ environment:
5
+ MRI_VERSIONS: 2.3.1,2.2.5,2.1.10
6
+ RAILS5_VERSIONS: 2.3.1,2.2.5
7
+ JRUBY_VERSIONS: jruby-9.1.5.0
8
+ JRUBY_OPTS: --dev
9
+ AGENT_BUILD_PATH: "/home/ubuntu/agent"
10
+ TEST_DATADOG_INTEGRATION: 1
11
+
12
+ dependencies:
13
+ cache_directories:
14
+ # Cache Ruby binaries and gems
15
+ - "/opt/circleci/.rvm/"
16
+ pre:
17
+ # we should use an old docker-compose because CircleCI supports
18
+ # only docker-engine==1.9
19
+ - pip install docker-compose==1.7.1
20
+ - docker-compose up -d | cat
21
+ # configure Ruby interpreters
22
+ - gem install builder
23
+ - bundle install
24
+ - rvm get head
25
+ - rvm install $MRI_VERSIONS
26
+ - rvm install $JRUBY_VERSIONS
27
+ # prepare and run the trace agent
28
+ # TODO[manu]: remove this part when everything will be open source
29
+ - git clone git@github.com:DataDog/datadog-trace-agent.git $AGENT_BUILD_PATH
30
+ - cd $AGENT_BUILD_PATH && docker build -t datadog/trace-agent .
31
+ - docker run -d -e DD_API_KEY=invalid_key_but_this_is_fine -e DD_BIND_HOST=0.0.0.0 -p 127.0.0.1:7777:7777 datadog/trace-agent
32
+ override:
33
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do gem install bundler
34
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do bundle install
35
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do appraisal install
36
+
37
+ test:
38
+ override:
39
+ - rvm 2.1.10 --verbose do rake rubocop
40
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do rake test
41
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do appraisal rails3-postgres rake rails
42
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do appraisal rails3-mysql2 rake rails
43
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do appraisal rails4-postgres rake rails
44
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do appraisal rails4-mysql2 rake rails
45
+ - rvm $RAILS5_VERSIONS --verbose do appraisal rails5-postgres rake rails
46
+ - rvm $RAILS5_VERSIONS --verbose do appraisal rails5-mysql2 rake rails
47
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do appraisal rails3-postgres-redis rake railsredis
48
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do appraisal rails4-postgres-redis rake railsredis
49
+ - rvm $RAILS5_VERSIONS --verbose do appraisal rails5-postgres-redis rake railsredis
50
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do appraisal contrib rake contrib
51
+ - rvm $MRI_VERSIONS,$JRUBY_VERSIONS --verbose do appraisal contrib rake monkey
52
+ - rvm 2.3.1 --verbose do rake benchmark
53
+ - rvm jruby-9.1.5.0 --verbose do rake benchmark
54
+
55
+ deployment:
56
+ develop:
57
+ branch: /(master)|(develop)/
58
+ # CircleCI is configured to provide VERSION_SUFFIX=$CIRCLE_BUILD_NUM
59
+ commands:
60
+ - S3_DIR=trace-dev rake release:docs
61
+ - S3_DIR=trace-dev rake release:gem
62
+ - cp -r ./rubygems/* $CIRCLE_ARTIFACTS
63
+ public:
64
+ tag: /v[0-9]+(\.[0-9]+)*/
65
+ commands:
66
+ - S3_DIR=trace rake release:docs
67
+ - S3_DIR=trace VERSION_SUFFIX= rake release:gem
68
+ - cp -r ./rubygems/* $CIRCLE_ARTIFACTS