restforce 5.2.4 → 5.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +4 -13
- data/.github/workflows/build.yml +26 -0
- data/.github/workflows/faraday.yml +26 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +3 -1
- data/README.md +3 -3
- data/lib/restforce/config.rb +10 -8
- data/lib/restforce/file_part.rb +14 -3
- data/lib/restforce/middleware/authentication.rb +1 -0
- data/lib/restforce/version.rb +1 -1
- data/restforce.gemspec +1 -2
- data/spec/unit/concerns/api_spec.rb +11 -4
- data/spec/unit/config_spec.rb +1 -1
- metadata +13 -89
- data/.circleci/config.yml +0 -61
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54463ffbbbc7f62bb17637d0bd80f9ed54061333fff5a843e40c152613fbf34b
|
4
|
+
data.tar.gz: 22c2bf1bc1c516a1f31262901ef0c50c8a4417b2dc0c3838178649b220b481cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82ecf32cf2ac55f42c20222a9d53d63ff595f96b591d46de3a0160b87d12a6c31a537c99dd6b08992f7ec1f58a21ba100ea14557660e57bd350eab965f5ef768
|
7
|
+
data.tar.gz: d33636c9271830f8acb4da01201c042ee9147e11cf4514ebc5a144311da350f2e3379469531801fe8e276ddfff2145c7f04f19a19cd77e304da56190b97cc270
|
data/.github/dependabot.yml
CHANGED
@@ -4,16 +4,7 @@ updates:
|
|
4
4
|
directory: "/"
|
5
5
|
schedule:
|
6
6
|
interval: daily
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
- 1.10.0
|
12
|
-
- 1.11.0
|
13
|
-
- 1.12.0
|
14
|
-
- 1.12.1
|
15
|
-
- 1.9.0
|
16
|
-
- dependency-name: webmock
|
17
|
-
versions:
|
18
|
-
- 3.12.0
|
19
|
-
- 3.12.1
|
7
|
+
- package-ecosystem: 'github-actions'
|
8
|
+
directory: '/'
|
9
|
+
schedule:
|
10
|
+
interval: 'daily'
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: 'Build'
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
branches: [main]
|
5
|
+
pull_request:
|
6
|
+
branches: [main]
|
7
|
+
jobs:
|
8
|
+
lint-and-test:
|
9
|
+
runs-on: ubuntu-latest
|
10
|
+
strategy:
|
11
|
+
matrix:
|
12
|
+
ruby_version: ['2.6', '2.7', '3.0', '3.1', '3.2.0-preview1']
|
13
|
+
steps:
|
14
|
+
- name: Checkout code
|
15
|
+
uses: actions/checkout@v3
|
16
|
+
- name: Setup Ruby ${{ matrix.ruby_version }}
|
17
|
+
uses: ruby/setup-ruby@v1
|
18
|
+
with:
|
19
|
+
bundler-cache: true
|
20
|
+
ruby-version: ${{ matrix.ruby_version }}
|
21
|
+
- name: Install dependencies
|
22
|
+
run: bundle install
|
23
|
+
- name: Lint Ruby files
|
24
|
+
run: bundle exec rubocop
|
25
|
+
- name: Run RSpec tests
|
26
|
+
run: bundle exec rspec
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: 'Test against supported Faraday minor versions'
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
branches: [main]
|
5
|
+
pull_request:
|
6
|
+
branches: [main]
|
7
|
+
jobs:
|
8
|
+
lint-and-test:
|
9
|
+
runs-on: ubuntu-latest
|
10
|
+
strategy:
|
11
|
+
matrix:
|
12
|
+
faraday_version: ['1.8.0', '1.9.0', '1.10.0']
|
13
|
+
env:
|
14
|
+
FARADAY_VERSION: ~> ${{ matrix.faraday_version }}
|
15
|
+
steps:
|
16
|
+
- name: Checkout code
|
17
|
+
uses: actions/checkout@v3
|
18
|
+
- name: Setup Ruby ${{ matrix.ruby_version }}
|
19
|
+
uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
bundler-cache: true
|
22
|
+
ruby-version: 3.1
|
23
|
+
- name: Install dependencies
|
24
|
+
run: bundle install
|
25
|
+
- name: Run RSpec tests
|
26
|
+
run: bundle exec rspec
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# 5.3.0 (May 30, 2022)
|
2
|
+
|
3
|
+
* Add support for Faraday v1.9.x and v1.10.0 (@magni-, @timrogers)
|
4
|
+
* Follow redirects during authentication to support Lightning URLs (e.g. `*.lightning.force.com` instead of `*.my.salesforce.com`) (@nhocki)
|
5
|
+
|
1
6
|
# 5.2.4 (Mar 16, 2022)
|
2
7
|
|
3
8
|
* Fix `Restforce::Collection#size` for Salesforce APIs that use the `size` property to return the total number of results, instead of `totalSize` (@kwong-yw)
|
data/Gemfile
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
source 'https://rubygems.org'
|
4
4
|
gemspec
|
5
5
|
|
6
|
+
# Enable us to explicitly pick a Faraday version when running tests
|
7
|
+
gem 'faraday', ENV.fetch('FARADAY_VERSION', '~> 1.8.0')
|
6
8
|
gem 'faye' unless RUBY_PLATFORM == 'java'
|
7
9
|
gem 'guard-rspec'
|
8
10
|
gem 'guard-rubocop'
|
@@ -12,6 +14,6 @@ gem 'rspec', '~> 3.11.0'
|
|
12
14
|
gem 'rspec-collection_matchers', '~> 1.2.0'
|
13
15
|
gem 'rspec-its', '~> 1.3.0'
|
14
16
|
gem 'rspec_junit_formatter', '~> 0.5.1'
|
15
|
-
gem 'rubocop', '~> 1.
|
17
|
+
gem 'rubocop', '~> 1.30.0'
|
16
18
|
gem 'simplecov', '~> 0.21.2'
|
17
19
|
gem 'webmock', '~> 3.14.0'
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Restforce
|
2
2
|
|
3
|
-
[![CircleCI](https://circleci.com/gh/restforce/restforce.svg?style=svg)](https://circleci.com/gh/restforce/restforce)
|
4
|
-
![](https://img.shields.io/gem/dt/restforce.svg)
|
3
|
+
[![CircleCI](https://circleci.com/gh/restforce/restforce.svg?style=svg)](https://circleci.com/gh/restforce/restforce)
|
4
|
+
![Downloads](https://img.shields.io/gem/dt/restforce.svg)
|
5
5
|
|
6
6
|
Restforce is a ruby gem for the [Salesforce REST api](http://www.salesforce.com/us/developer/docs/api_rest/index.htm).
|
7
7
|
|
@@ -27,7 +27,7 @@ Features include:
|
|
27
27
|
|
28
28
|
Add this line to your application's Gemfile:
|
29
29
|
|
30
|
-
gem 'restforce', '~> 5.
|
30
|
+
gem 'restforce', '~> 5.3.0'
|
31
31
|
|
32
32
|
And then execute:
|
33
33
|
|
data/lib/restforce/config.rb
CHANGED
@@ -91,29 +91,31 @@ module Restforce
|
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
94
|
-
option :api_version, default: lambda { ENV
|
94
|
+
option :api_version, default: lambda { ENV.fetch('SALESFORCE_API_VERSION', '26.0') }
|
95
95
|
|
96
96
|
# The username to use during login.
|
97
|
-
option :username, default: lambda { ENV
|
97
|
+
option :username, default: lambda { ENV.fetch('SALESFORCE_USERNAME', nil) }
|
98
98
|
|
99
99
|
# The password to use during login.
|
100
|
-
option :password, default: lambda { ENV
|
100
|
+
option :password, default: lambda { ENV.fetch('SALESFORCE_PASSWORD', nil) }
|
101
101
|
|
102
102
|
# The security token to use during login.
|
103
|
-
option :security_token, default: lambda {
|
103
|
+
option :security_token, default: lambda {
|
104
|
+
ENV.fetch('SALESFORCE_SECURITY_TOKEN', nil)
|
105
|
+
}
|
104
106
|
|
105
107
|
# The OAuth client id
|
106
|
-
option :client_id, default: lambda { ENV
|
108
|
+
option :client_id, default: lambda { ENV.fetch('SALESFORCE_CLIENT_ID', nil) }
|
107
109
|
|
108
110
|
# The OAuth client secret
|
109
|
-
option :client_secret, default: lambda { ENV
|
111
|
+
option :client_secret, default: lambda { ENV.fetch('SALESFORCE_CLIENT_SECRET', nil) }
|
110
112
|
|
111
113
|
# The private key for JWT authentication
|
112
114
|
option :jwt_key
|
113
115
|
|
114
116
|
# Set this to true if you're authenticating with a Sandbox instance.
|
115
117
|
# Defaults to false.
|
116
|
-
option :host, default: lambda { ENV
|
118
|
+
option :host, default: lambda { ENV.fetch('SALESFORCE_HOST', 'login.salesforce.com') }
|
117
119
|
|
118
120
|
option :oauth_token
|
119
121
|
option :refresh_token
|
@@ -139,7 +141,7 @@ module Restforce
|
|
139
141
|
# Faraday adapter to use. Defaults to Faraday.default_adapter.
|
140
142
|
option :adapter, default: lambda { Faraday.default_adapter }
|
141
143
|
|
142
|
-
option :proxy_uri, default: lambda { ENV
|
144
|
+
option :proxy_uri, default: lambda { ENV.fetch('SALESFORCE_PROXY_URI', nil) }
|
143
145
|
|
144
146
|
# A Proc that is called with the response body after a successful authentication.
|
145
147
|
option :authentication_callback
|
data/lib/restforce/file_part.rb
CHANGED
@@ -1,9 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
rescue LoadError
|
3
|
+
case Faraday::VERSION
|
4
|
+
when /\A0\./
|
6
5
|
require 'faraday/upload_io'
|
6
|
+
when /\A1\.[0-8]\./
|
7
|
+
# Faraday 1.x versions before 1.9 - not matched by
|
8
|
+
# the previous clause - use `FilePart` (which must be explicitly
|
9
|
+
# required)
|
10
|
+
require 'faraday/file_part'
|
11
|
+
when /\A1\./
|
12
|
+
# Later 1.x versions from 1.9 onwards automatically include the
|
13
|
+
# `faraday-multipart` gem, which includes `Faraday::FilePart`
|
14
|
+
require 'faraday/multipart'
|
15
|
+
else
|
16
|
+
raise "Unexpected Faraday version #{Faraday::VERSION} - not sure how to set up " \
|
17
|
+
"multipart support"
|
7
18
|
end
|
8
19
|
|
9
20
|
module Restforce
|
@@ -49,6 +49,7 @@ module Restforce
|
|
49
49
|
@connection ||= Faraday.new(faraday_options) do |builder|
|
50
50
|
builder.use Faraday::Request::UrlEncoded
|
51
51
|
builder.use Restforce::Middleware::Mashify, nil, @options
|
52
|
+
builder.use FaradayMiddleware::FollowRedirects
|
52
53
|
builder.response :json
|
53
54
|
|
54
55
|
if Restforce.log?
|
data/lib/restforce/version.rb
CHANGED
data/restforce.gemspec
CHANGED
@@ -12,7 +12,6 @@ Gem::Specification.new do |gem|
|
|
12
12
|
|
13
13
|
gem.files = `git ls-files`.split($OUTPUT_RECORD_SEPARATOR)
|
14
14
|
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
15
|
-
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
16
15
|
gem.name = "restforce"
|
17
16
|
gem.require_paths = ["lib"]
|
18
17
|
gem.version = Restforce::VERSION
|
@@ -25,7 +24,7 @@ Gem::Specification.new do |gem|
|
|
25
24
|
|
26
25
|
gem.required_ruby_version = '>= 2.6'
|
27
26
|
|
28
|
-
gem.add_dependency 'faraday', '
|
27
|
+
gem.add_dependency 'faraday', '<= 1.10.0', '>= 0.9.0'
|
29
28
|
gem.add_dependency 'faraday_middleware', ['>= 0.8.8', '<= 2.0']
|
30
29
|
gem.add_dependency 'hashie', '>= 1.2.0', '< 6.0'
|
31
30
|
gem.add_dependency 'jwt', ['>= 1.5.6']
|
@@ -312,8 +312,11 @@ describe Restforce::Concerns::API do
|
|
312
312
|
let(:attrs) { { id: '1234', StageName: "Call Scheduled" } }
|
313
313
|
|
314
314
|
it 'sends an HTTP PATCH, and returns true' do
|
315
|
-
client.should_receive(:api_patch)
|
316
|
-
|
315
|
+
client.should_receive(:api_patch) do |*args|
|
316
|
+
expect(args).to eq(["sobjects/Whizbang/1234",
|
317
|
+
{ StageName: "Call Scheduled" }])
|
318
|
+
end
|
319
|
+
|
317
320
|
expect(result).to be true
|
318
321
|
end
|
319
322
|
end
|
@@ -322,8 +325,12 @@ describe Restforce::Concerns::API do
|
|
322
325
|
let(:attrs) { { id: '1234/?abc', StageName: "Call Scheduled" } }
|
323
326
|
|
324
327
|
it 'sends an HTTP PATCH, and encodes the ID' do
|
325
|
-
client.should_receive(:api_patch)
|
326
|
-
|
328
|
+
client.should_receive(:api_patch) do |*args|
|
329
|
+
expect(args).to eq(['sobjects/Whizbang/1234%2F%3Fabc', {
|
330
|
+
StageName: "Call Scheduled"
|
331
|
+
}])
|
332
|
+
end
|
333
|
+
|
327
334
|
expect(result).to be true
|
328
335
|
end
|
329
336
|
end
|
data/spec/unit/config_spec.rb
CHANGED
@@ -44,7 +44,7 @@ describe Restforce do
|
|
44
44
|
'SALESFORCE_PROXY_URI' => 'proxy',
|
45
45
|
'SALESFORCE_HOST' => 'test.host.com',
|
46
46
|
'SALESFORCE_API_VERSION' => '37.0' }.
|
47
|
-
each { |var, value| ENV.stub(:
|
47
|
+
each { |var, value| ENV.stub(:fetch).with(var, anything).and_return(value) }
|
48
48
|
end
|
49
49
|
|
50
50
|
its(:username) { should eq 'foo' }
|
metadata
CHANGED
@@ -1,23 +1,23 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restforce
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Rogers
|
8
8
|
- Eric J. Holmes
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-05-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - "<="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 1.
|
20
|
+
version: 1.10.0
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 0.9.0
|
@@ -25,9 +25,9 @@ dependencies:
|
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
|
-
- - "
|
28
|
+
- - "<="
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: 1.
|
30
|
+
version: 1.10.0
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.9.0
|
@@ -93,9 +93,10 @@ executables: []
|
|
93
93
|
extensions: []
|
94
94
|
extra_rdoc_files: []
|
95
95
|
files:
|
96
|
-
- ".circleci/config.yml"
|
97
96
|
- ".github/ISSUE_TEMPLATE/unhandled-salesforce-error.md"
|
98
97
|
- ".github/dependabot.yml"
|
98
|
+
- ".github/workflows/build.yml"
|
99
|
+
- ".github/workflows/faraday.yml"
|
99
100
|
- ".gitignore"
|
100
101
|
- ".rubocop.yml"
|
101
102
|
- ".rubocop_todo.yml"
|
@@ -240,7 +241,7 @@ metadata:
|
|
240
241
|
source_code_uri: https://github.com/restforce/restforce
|
241
242
|
changelog_uri: https://github.com/restforce/restforce/blob/master/CHANGELOG.md
|
242
243
|
rubygems_mfa_required: 'true'
|
243
|
-
post_install_message:
|
244
|
+
post_install_message:
|
244
245
|
rdoc_options: []
|
245
246
|
require_paths:
|
246
247
|
- lib
|
@@ -255,85 +256,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
255
256
|
- !ruby/object:Gem::Version
|
256
257
|
version: '0'
|
257
258
|
requirements: []
|
258
|
-
rubygems_version: 3.
|
259
|
-
signing_key:
|
259
|
+
rubygems_version: 3.1.6
|
260
|
+
signing_key:
|
260
261
|
specification_version: 4
|
261
262
|
summary: A lightweight Ruby client for the Salesforce REST API
|
262
|
-
test_files:
|
263
|
-
- spec/fixtures/auth_error_response.json
|
264
|
-
- spec/fixtures/auth_success_response.json
|
265
|
-
- spec/fixtures/blob.jpg
|
266
|
-
- spec/fixtures/expired_session_response.json
|
267
|
-
- spec/fixtures/reauth_success_response.json
|
268
|
-
- spec/fixtures/refresh_error_response.json
|
269
|
-
- spec/fixtures/refresh_success_response.json
|
270
|
-
- spec/fixtures/services_data_success_response.json
|
271
|
-
- spec/fixtures/sobject/create_success_response.json
|
272
|
-
- spec/fixtures/sobject/delete_error_response.json
|
273
|
-
- spec/fixtures/sobject/describe_sobjects_success_response.json
|
274
|
-
- spec/fixtures/sobject/get_deleted_success_response.json
|
275
|
-
- spec/fixtures/sobject/get_updated_success_response.json
|
276
|
-
- spec/fixtures/sobject/list_sobjects_success_response.json
|
277
|
-
- spec/fixtures/sobject/list_view_results_success_response.json
|
278
|
-
- spec/fixtures/sobject/org_query_response.json
|
279
|
-
- spec/fixtures/sobject/query_aggregate_success_response.json
|
280
|
-
- spec/fixtures/sobject/query_empty_response.json
|
281
|
-
- spec/fixtures/sobject/query_error_response.json
|
282
|
-
- spec/fixtures/sobject/query_paginated_first_page_response.json
|
283
|
-
- spec/fixtures/sobject/query_paginated_last_page_response.json
|
284
|
-
- spec/fixtures/sobject/query_success_response.json
|
285
|
-
- spec/fixtures/sobject/recent_success_response.json
|
286
|
-
- spec/fixtures/sobject/search_error_response.json
|
287
|
-
- spec/fixtures/sobject/search_success_response.json
|
288
|
-
- spec/fixtures/sobject/sobject_describe_error_response.json
|
289
|
-
- spec/fixtures/sobject/sobject_describe_success_response.json
|
290
|
-
- spec/fixtures/sobject/sobject_find_error_response.json
|
291
|
-
- spec/fixtures/sobject/sobject_find_success_response.json
|
292
|
-
- spec/fixtures/sobject/sobject_select_success_response.json
|
293
|
-
- spec/fixtures/sobject/upsert_created_success_response.json
|
294
|
-
- spec/fixtures/sobject/upsert_error_response.json
|
295
|
-
- spec/fixtures/sobject/upsert_multiple_error_response.json
|
296
|
-
- spec/fixtures/sobject/upsert_updated_success_response.json
|
297
|
-
- spec/fixtures/sobject/write_error_response.json
|
298
|
-
- spec/fixtures/test_private.key
|
299
|
-
- spec/integration/abstract_client_spec.rb
|
300
|
-
- spec/integration/data/client_spec.rb
|
301
|
-
- spec/spec_helper.rb
|
302
|
-
- spec/support/client_integration.rb
|
303
|
-
- spec/support/concerns.rb
|
304
|
-
- spec/support/event_machine.rb
|
305
|
-
- spec/support/fixture_helpers.rb
|
306
|
-
- spec/support/matchers.rb
|
307
|
-
- spec/support/middleware.rb
|
308
|
-
- spec/support/mock_cache.rb
|
309
|
-
- spec/unit/abstract_client_spec.rb
|
310
|
-
- spec/unit/attachment_spec.rb
|
311
|
-
- spec/unit/collection_spec.rb
|
312
|
-
- spec/unit/concerns/api_spec.rb
|
313
|
-
- spec/unit/concerns/authentication_spec.rb
|
314
|
-
- spec/unit/concerns/base_spec.rb
|
315
|
-
- spec/unit/concerns/batch_api_spec.rb
|
316
|
-
- spec/unit/concerns/caching_spec.rb
|
317
|
-
- spec/unit/concerns/canvas_spec.rb
|
318
|
-
- spec/unit/concerns/composite_api_spec.rb
|
319
|
-
- spec/unit/concerns/connection_spec.rb
|
320
|
-
- spec/unit/concerns/streaming_spec.rb
|
321
|
-
- spec/unit/config_spec.rb
|
322
|
-
- spec/unit/data/client_spec.rb
|
323
|
-
- spec/unit/document_spec.rb
|
324
|
-
- spec/unit/error_code_spec.rb
|
325
|
-
- spec/unit/mash_spec.rb
|
326
|
-
- spec/unit/middleware/authentication/jwt_bearer_spec.rb
|
327
|
-
- spec/unit/middleware/authentication/password_spec.rb
|
328
|
-
- spec/unit/middleware/authentication/token_spec.rb
|
329
|
-
- spec/unit/middleware/authentication_spec.rb
|
330
|
-
- spec/unit/middleware/authorization_spec.rb
|
331
|
-
- spec/unit/middleware/custom_headers_spec.rb
|
332
|
-
- spec/unit/middleware/gzip_spec.rb
|
333
|
-
- spec/unit/middleware/instance_url_spec.rb
|
334
|
-
- spec/unit/middleware/logger_spec.rb
|
335
|
-
- spec/unit/middleware/mashify_spec.rb
|
336
|
-
- spec/unit/middleware/raise_error_spec.rb
|
337
|
-
- spec/unit/signed_request_spec.rb
|
338
|
-
- spec/unit/sobject_spec.rb
|
339
|
-
- spec/unit/tooling/client_spec.rb
|
263
|
+
test_files: []
|
data/.circleci/config.yml
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
version: 2
|
2
|
-
|
3
|
-
references:
|
4
|
-
steps: &steps
|
5
|
-
- checkout
|
6
|
-
|
7
|
-
- run:
|
8
|
-
name: Update Bundler
|
9
|
-
command: gem install bundler
|
10
|
-
|
11
|
-
- run:
|
12
|
-
name: Install dependencies from .gemspec
|
13
|
-
command: bundle install --jobs=4 --retry=3 --path vendor/bundle
|
14
|
-
|
15
|
-
- run:
|
16
|
-
name: Run RSpec tests
|
17
|
-
command: |
|
18
|
-
mkdir /tmp/test-results
|
19
|
-
|
20
|
-
bundle exec rspec --format progress \
|
21
|
-
--format RspecJunitFormatter \
|
22
|
-
--out /tmp/test-results/rspec.xml \
|
23
|
-
--format progress \
|
24
|
-
spec/**/*_spec.rb
|
25
|
-
|
26
|
-
- run:
|
27
|
-
name: Check code style with Rubocop
|
28
|
-
command: bundle exec rubocop
|
29
|
-
|
30
|
-
- store_test_results:
|
31
|
-
path: /tmp/test-results
|
32
|
-
- store_artifacts:
|
33
|
-
path: /tmp/test-results
|
34
|
-
destination: test-results
|
35
|
-
|
36
|
-
jobs:
|
37
|
-
build-ruby31:
|
38
|
-
docker:
|
39
|
-
- image: cimg/ruby:3.1
|
40
|
-
steps: *steps
|
41
|
-
build-ruby30:
|
42
|
-
docker:
|
43
|
-
- image: cimg/ruby:3.0
|
44
|
-
steps: *steps
|
45
|
-
build-ruby27:
|
46
|
-
docker:
|
47
|
-
- image: cimg/ruby:2.7
|
48
|
-
steps: *steps
|
49
|
-
build-ruby26:
|
50
|
-
docker:
|
51
|
-
- image: cimg/ruby:2.6
|
52
|
-
steps: *steps
|
53
|
-
|
54
|
-
workflows:
|
55
|
-
version: 2
|
56
|
-
tests:
|
57
|
-
jobs:
|
58
|
-
- build-ruby31
|
59
|
-
- build-ruby30
|
60
|
-
- build-ruby27
|
61
|
-
- build-ruby26
|