percy-client 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc578e0917f5911a1aa66074c6b3df2cfd29f13b
|
4
|
+
data.tar.gz: e8018bcffe5f1023331a360f6e3c1137409e15e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2fd7787234164b43c0ba7b9cc65a5414f374b7515f7ae397cbcb2de889020f1bb55678876433ab166c4be29418b00b4260ed8e55141deff7da6383c2ec820a6
|
7
|
+
data.tar.gz: e6b211360bd8650475918f344f9f810349407e0f1a961d97fdd5f56e9214062de4e95390128d9d60aaf2350a518ad511ee591687a01b4d95d74b35e975ced155
|
data/lib/percy/client/builds.rb
CHANGED
@@ -6,6 +6,13 @@ module Percy
|
|
6
6
|
Percy::Client::Environment.pull_request_number
|
7
7
|
commit_data = options[:commit_data] || Percy::Client::Environment.commit
|
8
8
|
resources = options[:resources]
|
9
|
+
parallel_nonce = options[:parallel_nonce] || Percy::Client::Environment.parallel_nonce
|
10
|
+
parallel_total_shards = options[:parallel_total_shards] \
|
11
|
+
|| Percy::Client::Environment.parallel_total_shards
|
12
|
+
|
13
|
+
if (parallel_nonce && !parallel_total_shards) || (!parallel_nonce && parallel_total_shards)
|
14
|
+
raise ArgumentError.new('If parallel_nonce is given, parallel_total_shards is required.')
|
15
|
+
end
|
9
16
|
|
10
17
|
data = {
|
11
18
|
'data' => {
|
@@ -20,6 +27,8 @@ module Percy
|
|
20
27
|
'commit-committer-email' => commit_data[:committer_email],
|
21
28
|
'commit-message' => commit_data[:message],
|
22
29
|
'pull-request-number' => pull_request_number,
|
30
|
+
'parallel-nonce' => parallel_nonce,
|
31
|
+
'parallel-total-shards' => parallel_total_shards,
|
23
32
|
},
|
24
33
|
}
|
25
34
|
}
|
@@ -41,6 +50,12 @@ module Percy
|
|
41
50
|
|
42
51
|
build_data = post("#{config.api_url}/repos/#{repo}/builds/", data)
|
43
52
|
Percy.logger.debug { "Build #{build_data['data']['id']} created" }
|
53
|
+
parallelism_msg = if parallel_total_shards
|
54
|
+
"#{parallel_total_shards} shards detected (nonce: #{parallel_nonce.inspect})"
|
55
|
+
else
|
56
|
+
'not detected'
|
57
|
+
end
|
58
|
+
Percy.logger.debug { "Parallel test environment: #{parallelism_msg}" }
|
44
59
|
build_data
|
45
60
|
end
|
46
61
|
|
@@ -156,6 +156,14 @@ module Percy
|
|
156
156
|
end
|
157
157
|
end
|
158
158
|
|
159
|
+
def self.parallel_nonce
|
160
|
+
return ENV['PERCY_PARALLEL_NONCE'] if ENV['PERCY_PARALLEL_NONCE']
|
161
|
+
end
|
162
|
+
|
163
|
+
def self.parallel_total_shards
|
164
|
+
return Integer(ENV['PERCY_PARALLEL_TOTAL']) if ENV['PERCY_PARALLEL_TOTAL']
|
165
|
+
end
|
166
|
+
|
159
167
|
# @private
|
160
168
|
def self._get_origin_url
|
161
169
|
`git config --get remote.origin.url`
|
data/lib/percy/client/version.rb
CHANGED
@@ -33,6 +33,16 @@ RSpec.describe Percy::Client::Builds, :vcr do
|
|
33
33
|
expect(build['data']['relationships']['missing-resources']['data']).to be
|
34
34
|
expect(build['data']['relationships']['missing-resources']['data'].length).to eq(1)
|
35
35
|
end
|
36
|
+
context 'parallel test environment' do
|
37
|
+
it 'raises an error if either parallel_nonce or parallel_total_shards is given alone' do
|
38
|
+
expect do
|
39
|
+
Percy.create_build('fotinakis/percy-examples', parallel_nonce: 123)
|
40
|
+
end.to raise_error(ArgumentError)
|
41
|
+
expect do
|
42
|
+
Percy.create_build('fotinakis/percy-examples', parallel_total_shards: 2)
|
43
|
+
end.to raise_error(ArgumentError)
|
44
|
+
end
|
45
|
+
end
|
36
46
|
end
|
37
47
|
describe '#finalize_build' do
|
38
48
|
it 'finalizes a build' do
|
@@ -5,6 +5,8 @@ RSpec.describe Percy::Client::Environment do
|
|
5
5
|
ENV['PERCY_BRANCH'] = nil
|
6
6
|
ENV['PERCY_PULL_REQUEST'] = nil
|
7
7
|
ENV['PERCY_REPO_SLUG'] = nil
|
8
|
+
ENV['PERCY_PARALLEL_NONCE'] = nil
|
9
|
+
ENV['PERCY_PARALLEL_TOTAL'] = nil
|
8
10
|
|
9
11
|
# Unset Travis vars.
|
10
12
|
ENV['TRAVIS_BUILD_ID'] = nil
|
@@ -139,6 +141,24 @@ RSpec.describe Percy::Client::Environment do
|
|
139
141
|
Percy::Client::Environment::RepoNotFoundError)
|
140
142
|
end
|
141
143
|
end
|
144
|
+
describe '#parallel_nonce' do
|
145
|
+
it 'returns nil' do
|
146
|
+
expect(Percy::Client::Environment.parallel_nonce).to be_nil
|
147
|
+
end
|
148
|
+
it 'can be set with environment var' do
|
149
|
+
ENV['PERCY_PARALLEL_NONCE'] = 'nonce'
|
150
|
+
expect(Percy::Client::Environment.parallel_nonce).to eq('nonce')
|
151
|
+
end
|
152
|
+
end
|
153
|
+
describe '#parallel_total_shards' do
|
154
|
+
it 'returns nil' do
|
155
|
+
expect(Percy::Client::Environment.parallel_nonce).to be_nil
|
156
|
+
end
|
157
|
+
it 'can be set with environment var' do
|
158
|
+
ENV['PERCY_PARALLEL_TOTAL'] = '3'
|
159
|
+
expect(Percy::Client::Environment.parallel_total_shards).to eq(3)
|
160
|
+
end
|
161
|
+
end
|
142
162
|
end
|
143
163
|
context 'in Jenkins CI' do
|
144
164
|
before(:each) do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: percy-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Perceptual Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|