buildkite-test_collector 2.1.0.pre → 2.2.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -1
- data/DESIGN.md +1 -11
- data/Gemfile.lock +1 -3
- data/README.md +3 -0
- data/buildkite-test_collector.gemspec +0 -1
- data/buildkite.yaml +1 -1
- data/lib/buildkite/test_collector/http_client.rb +10 -19
- data/lib/buildkite/test_collector/version.rb +1 -1
- data/lib/buildkite/test_collector.rb +0 -3
- metadata +4 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3f61975dacef343c33cf6d550fc4dd5d765f02050bd2a8bc86b5e221afa751d
|
4
|
+
data.tar.gz: 340dc7bce50ef727dfea08a331260824aaa640c9e83b344bc620afbf153fbe1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e692ebc6764114d7a70e854c8daf7acd09110ad78736163a2845538451cf5f6b424a709bbccc89007bdccc3e68fac391bb3d9ec041965167c2a709dd6d68ffd5
|
7
|
+
data.tar.gz: 7cb0d8141ebfa1b43c8bc5ae4de82bccbc3da9cb221566a9a54ca7f54b2eba3908be5fa923dc0d08c688fd41d1941f24e711d747ab7d0ecea44be8658f1a2ca8
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## v2.2.0
|
4
|
+
- Gzip payload of request to Upload API #183 - @niceking
|
5
|
+
|
6
|
+
## v2.1.0
|
7
|
+
- Major change: deprecates websocket connection in favour of sending HTTP requests to the Upload API. In future, websocket support will be completely removed from Buildkite and only version 2.1+ of this gem will continue to work.
|
8
|
+
|
3
9
|
## v2.1.0.pre
|
4
10
|
- Minitest plugin to use HTTP Upload API instead of websocket connection to send test data #178 #179 - @niceking
|
5
11
|
|
@@ -11,7 +17,7 @@
|
|
11
17
|
|
12
18
|
## v1.5.0
|
13
19
|
|
14
|
-
- Send `failure_expanded` from minitest #171 - @nprizal
|
20
|
+
- Send `failure_expanded` from minitest #171 - @nprizal
|
15
21
|
|
16
22
|
## v1.4.2
|
17
23
|
|
data/DESIGN.md
CHANGED
@@ -2,17 +2,7 @@
|
|
2
2
|
|
3
3
|
## Threads
|
4
4
|
|
5
|
-
The Buildkite ruby collector uses
|
6
|
-
receive data with Buildkite. Execution information starts transmitting as soon
|
7
|
-
as possible, without waiting for the test suite to finish running.
|
8
|
-
|
9
|
-
This gem uses 3 ruby threads:
|
10
|
-
|
11
|
-
* main thread: acts as the producer. It collects span data from the
|
12
|
-
test suite and enqueues it into the send queue.
|
13
|
-
* write thread: acts as the consumer. Removes data from the send queue and
|
14
|
-
sends it to Buildkite.
|
15
|
-
* read thread: receives and processes messages from Buildkite.
|
5
|
+
The Buildkite ruby collector uses threads to send data to the Upload API in the background. When the test suite has finished running, the collector waits UPLOAD_SESSION_TIMEOUT seconds for the Upload API requests to finish before exiting.
|
16
6
|
|
17
7
|
## Data
|
18
8
|
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
buildkite-test_collector (2.
|
4
|
+
buildkite-test_collector (2.2.0)
|
5
5
|
activesupport (>= 4.2)
|
6
|
-
websocket (~> 1.2)
|
7
6
|
|
8
7
|
GEM
|
9
8
|
remote: https://rubygems.org/
|
@@ -34,7 +33,6 @@ GEM
|
|
34
33
|
rspec-support (3.10.3)
|
35
34
|
tzinfo (2.0.6)
|
36
35
|
concurrent-ruby (~> 1.0)
|
37
|
-
websocket (1.2.9)
|
38
36
|
|
39
37
|
PLATFORMS
|
40
38
|
ruby
|
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Buildkite Collectors for Ruby
|
2
2
|
|
3
|
+
**DEPRECATION NOTICE**
|
4
|
+
Versions prior to 2.1.x are unsupported and will not work after mid-2023. Please upgrade to the latest version.
|
5
|
+
|
3
6
|
Official [Buildkite Test Analytics](https://buildkite.com/test-analytics) collectors for Ruby test frameworks ✨
|
4
7
|
|
5
8
|
⚒ **Supported test frameworks:** RSpec, Minitest, and [more coming soon](https://github.com/buildkite/test-collector-ruby/issues?q=is%3Aissue+is%3Aopen+label%3A%22test+frameworks%22).
|
@@ -25,7 +25,6 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
26
26
|
|
27
27
|
spec.add_dependency "activesupport", ">= 4.2"
|
28
|
-
spec.add_dependency "websocket", '~> 1.2'
|
29
28
|
|
30
29
|
spec.add_development_dependency "rspec-core", '~> 3.10'
|
31
30
|
spec.add_development_dependency "rspec-expectations", '~> 3.10'
|
data/buildkite.yaml
CHANGED
@@ -10,24 +10,6 @@ module Buildkite::TestCollector
|
|
10
10
|
@authorization_header = "Token token=\"#{Buildkite::TestCollector.api_token}\""
|
11
11
|
end
|
12
12
|
|
13
|
-
def post
|
14
|
-
contact_uri = URI.parse(url)
|
15
|
-
|
16
|
-
http = Net::HTTP.new(contact_uri.host, contact_uri.port)
|
17
|
-
http.use_ssl = contact_uri.scheme == "https"
|
18
|
-
|
19
|
-
contact = Net::HTTP::Post.new(contact_uri.path, {
|
20
|
-
"Authorization" => authorization_header,
|
21
|
-
"Content-Type" => "application/json",
|
22
|
-
})
|
23
|
-
contact.body = {
|
24
|
-
run_env: Buildkite::TestCollector::CI.env,
|
25
|
-
format: "websocket"
|
26
|
-
}.to_json
|
27
|
-
|
28
|
-
http.request(contact)
|
29
|
-
end
|
30
|
-
|
31
13
|
def post_json(data)
|
32
14
|
contact_uri = URI.parse(url)
|
33
15
|
|
@@ -37,16 +19,25 @@ module Buildkite::TestCollector
|
|
37
19
|
contact = Net::HTTP::Post.new(contact_uri.path, {
|
38
20
|
"Authorization" => authorization_header,
|
39
21
|
"Content-Type" => "application/json",
|
22
|
+
"Content-Encoding" => "gzip",
|
40
23
|
})
|
41
24
|
|
42
25
|
data_set = data.map(&:as_hash)
|
43
26
|
|
44
|
-
|
27
|
+
body = {
|
45
28
|
run_env: Buildkite::TestCollector::CI.env,
|
46
29
|
format: "json",
|
47
30
|
data: data_set
|
48
31
|
}.to_json
|
49
32
|
|
33
|
+
compressed_body = StringIO.new
|
34
|
+
|
35
|
+
writer = Zlib::GzipWriter.new(compressed_body)
|
36
|
+
writer.write(body)
|
37
|
+
writer.close
|
38
|
+
|
39
|
+
contact.body = compressed_body.string
|
40
|
+
|
50
41
|
http.request(contact)
|
51
42
|
end
|
52
43
|
|
@@ -8,13 +8,10 @@ end
|
|
8
8
|
require "json"
|
9
9
|
require "logger"
|
10
10
|
require "net/http"
|
11
|
-
require "openssl"
|
12
11
|
require "time"
|
13
12
|
require "timeout"
|
14
13
|
require "tmpdir"
|
15
14
|
require "securerandom"
|
16
|
-
require "socket"
|
17
|
-
require "websocket"
|
18
15
|
|
19
16
|
require "active_support/core_ext/object/blank"
|
20
17
|
require "active_support/core_ext/hash/indifferent_access"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: buildkite-test_collector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Buildkite
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4.2'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: websocket
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '1.2'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '1.2'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: rspec-core
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,9 +109,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
109
|
version: 2.3.0
|
124
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
111
|
requirements:
|
126
|
-
- - "
|
112
|
+
- - ">="
|
127
113
|
- !ruby/object:Gem::Version
|
128
|
-
version:
|
114
|
+
version: '0'
|
129
115
|
requirements: []
|
130
116
|
rubygems_version: 3.1.6
|
131
117
|
signing_key:
|