rspec-buildkite 0.1.3 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.md +17 -1
- data/lib/rspec/buildkite/annotation_formatter.rb +19 -7
- data/lib/rspec/buildkite/recolorizer.rb +0 -47
- data/lib/rspec/buildkite/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +23 -23
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f70f8313f4a0be804bbc012021fd7859569a59283198ed75e77a64732eae2353
|
4
|
+
data.tar.gz: 70e326e3d66915b3c10fc2b0fcec1026325e5bc4862a58b4d53d9b73d6bcbd2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9bc1943b27689513e94edae07d9a16264355e606c8fa16030bb41e8cf18f8ad4cfd3c4c46ab9d6364ea6358f2d70c5d48a8f931d1ccdfd5eb5fd326b290f2ad
|
7
|
+
data.tar.gz: 99f2f2d81331c32dc1c0bca2a0e97b924e4f2b56603513581782495cbedf777f5b598e85bdab11b2d19f88835cb3a545d1b832373eea0d6cab18ea25ada011fd
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.md
CHANGED
@@ -38,6 +38,22 @@ Add it to your `.rspec` alongside your favorite formatter:
|
|
38
38
|
|
39
39
|
Now run your specs on Buildkite!
|
40
40
|
|
41
|
+
### Docker & Docker Compose
|
42
|
+
|
43
|
+
If you run your RSpec builds inside Docker or Docker Compose then you'll need to make sure that buildkite-agent is available inside your container, and that some environment variables are propagated into the running containers. The buildkite-agent binary can be baked into your image, or mounted in as a volume. If you're using [the docker-compose-buildkite-plugin][dcbp] you can pass the environment using [plugin configuration][dcbp-env]. Or you can add them to the [environment section][dc-env] in your `docker-compose.yml`, or supply [env arguments][d-env] to your docker command.
|
44
|
+
|
45
|
+
The following environment variables are required:
|
46
|
+
|
47
|
+
- `BUILDKITE`
|
48
|
+
- `BUILDKITE_BUILD_URL`
|
49
|
+
- `BUILDKITE_JOB_ID`
|
50
|
+
- `BUILDKITE_AGENT_ACCESS_TOKEN`
|
51
|
+
|
52
|
+
[dcbp]: https://github.com/buildkite-plugins/docker-compose-buildkite-plugin
|
53
|
+
[dcbp-env]: https://github.com/buildkite-plugins/docker-compose-buildkite-plugin#environment
|
54
|
+
[dc-env]: https://docs.docker.com/compose/environment-variables/
|
55
|
+
[d-env]: https://docs.docker.com/engine/reference/run/#env-environment-variables
|
56
|
+
|
41
57
|
## Development
|
42
58
|
|
43
59
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -46,7 +62,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
46
62
|
|
47
63
|
## Contributing
|
48
64
|
|
49
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
65
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/buildkite/rspec-buildkite.
|
50
66
|
|
51
67
|
## License
|
52
68
|
|
@@ -27,7 +27,9 @@ module RSpec::Buildkite
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def example_failed(notification)
|
30
|
-
@queue.
|
30
|
+
return if @queue.nil? || RSpec.world.wants_to_quit
|
31
|
+
|
32
|
+
@queue.push(notification)
|
31
33
|
end
|
32
34
|
|
33
35
|
private
|
@@ -37,17 +39,19 @@ module RSpec::Buildkite
|
|
37
39
|
break if notification == :close
|
38
40
|
|
39
41
|
if notification
|
40
|
-
system
|
42
|
+
system("buildkite-agent", "annotate",
|
41
43
|
"--context", "rspec",
|
42
44
|
"--style", "error",
|
43
45
|
"--append",
|
44
46
|
format_failure(notification),
|
45
47
|
out: :close # only display errors
|
48
|
+
) or raise "buildkite-agent failed to run: #{$?}#{" (command not found)" if $?.exitstatus == 127}"
|
46
49
|
end
|
47
50
|
end
|
48
51
|
rescue
|
49
|
-
puts "Warning: Couldn't create Buildkite annotations
|
50
|
-
|
52
|
+
$stderr.puts "Warning: Couldn't create Buildkite annotations:\n" <<
|
53
|
+
" #{$!.to_s}\n" <<
|
54
|
+
" #{$!.backtrace.join("\n ")}"
|
51
55
|
end
|
52
56
|
|
53
57
|
def format_failure(notification)
|
@@ -56,11 +60,19 @@ module RSpec::Buildkite
|
|
56
60
|
job_url = "#{build_url}##{job_id}"
|
57
61
|
|
58
62
|
%{<details>\n} <<
|
59
|
-
%{<summary>#{notification.description.encode(:xml => :text)}</summary>\n
|
60
|
-
%{<
|
61
|
-
|
63
|
+
%{<summary>#{notification.description.encode(:xml => :text)}</summary>\n} <<
|
64
|
+
%{<pre class="term">#{Recolorizer.recolorize(notification.colorized_message_lines.join("\n").encode(:xml => :text))}</pre>\n} <<
|
65
|
+
format_rerun(notification) <<
|
66
|
+
%{<p>in <a href=#{job_url.encode(:xml => :attr)}>Job ##{job_id.encode(:xml => :text)}</a></p>\n} <<
|
62
67
|
%{</details>} <<
|
63
68
|
%{\n\n\n}
|
64
69
|
end
|
70
|
+
|
71
|
+
def format_rerun(notification)
|
72
|
+
%{<pre class="term">} <<
|
73
|
+
%{<span class="term-fg31">rspec #{notification.example.location_rerun_argument.encode(:xml => :text)}</span>} <<
|
74
|
+
%{ <span class="term-fg36"># #{notification.example.full_description.encode(:xml => :text)}</span>} <<
|
75
|
+
%{</pre>\n}
|
76
|
+
end
|
65
77
|
end
|
66
78
|
end
|
@@ -49,52 +49,5 @@ module RSpec::Buildkite
|
|
49
49
|
end
|
50
50
|
end << ("</span>" * level)
|
51
51
|
end
|
52
|
-
# Re-color an ANSI-colorized string using terminal CSS classes:
|
53
|
-
# https://github.com/buildkite/terminal/blob/05a77905c468b9150cac41298fdb8a0735024d42/style.go#L34
|
54
|
-
def recolorize(string)
|
55
|
-
level = 0
|
56
|
-
string.gsub(/\e\[(\d+(?:;\d+)*)m/) do
|
57
|
-
"".tap do |buffer|
|
58
|
-
codes = $1.split(";").map(&:to_i)
|
59
|
-
|
60
|
-
classes = []
|
61
|
-
while code = codes.shift
|
62
|
-
case code
|
63
|
-
when 0
|
64
|
-
classes.clear
|
65
|
-
buffer << ("</span>" * level)
|
66
|
-
level = 0
|
67
|
-
when 1..5, 9, 30..37
|
68
|
-
classes << "term-fg#{code}"
|
69
|
-
when 38
|
70
|
-
if codes[0] == 5
|
71
|
-
codes.shift
|
72
|
-
if codes[0]
|
73
|
-
classes << "term-fgx#{codes.shift}"
|
74
|
-
end
|
75
|
-
end
|
76
|
-
when 40..47
|
77
|
-
classes << "term-bg#{code}"
|
78
|
-
when 48
|
79
|
-
if codes[0] == 5
|
80
|
-
codes.shift
|
81
|
-
if codes[0]
|
82
|
-
classes << "term-bgx#{codes.shift}"
|
83
|
-
end
|
84
|
-
end
|
85
|
-
when 90..97
|
86
|
-
classes << "term-fgi#{code}"
|
87
|
-
when 100..107
|
88
|
-
classes << "term-bgi#{code}"
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
if classes.any?
|
93
|
-
level += 1
|
94
|
-
buffer << %{<span class=#{classes.map { |klass| klass }.join(" ").encode(:xml => :attr)}>}
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end << ("</span>" * level)
|
98
|
-
end
|
99
52
|
end
|
100
53
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,34 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-buildkite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Cochran
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MIIDXDCCAkSgAwIBAgIBATANBgkqhkiG9w0BAQsFADA6MQ0wCwYDVQQDDARzajI2
|
14
|
+
MRQwEgYKCZImiZPyLGQBGRYEc2oyNjETMBEGCgmSJomT8ixkARkWA2NvbTAeFw0y
|
15
|
+
MjA3MDQwMDQwNDZaFw0yMzA3MDQwMDQwNDZaMDoxDTALBgNVBAMMBHNqMjYxFDAS
|
16
16
|
BgoJkiaJk/IsZAEZFgRzajI2MRMwEQYKCZImiZPyLGQBGRYDY29tMIIBIjANBgkq
|
17
17
|
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr60Eo/ttCk8GMTMFiPr3GoYMIMFvLak
|
18
18
|
xSmTk9YGCB6UiEePB4THSSA5w6IPyeaCF/nWkDp3/BAam0eZMWG1IzYQB23TqIM0
|
19
19
|
1xzcNRvFsn0aQoQ00k+sj+G83j3T5OOV5OZIlu8xAChMkQmiPd1NXc6uFv+Iacz7
|
20
20
|
kj+CMsI9YUFdNoU09QY0b+u+Rb6wDYdpyvN60YC30h0h1MeYbvYZJx/iZK4XY5zu
|
21
21
|
4O/FL2ChjL2CPCpLZW55ShYyrzphWJwLOJe+FJ/ZBl6YXwrzQM9HKnt4titSNvyU
|
22
|
-
KzE3L63A3PZvExzLrN9u09kuWLLJfXB2sGOlw3n9t72rJiuBr3/
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
22
|
+
KzE3L63A3PZvExzLrN9u09kuWLLJfXB2sGOlw3n9t72rJiuBr3/OQQIDAQABo20w
|
23
|
+
azAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU99dfRjEKFyczTeIz
|
24
|
+
m3ZsDWrNC80wGAYDVR0RBBEwD4ENc2oyNkBzajI2LmNvbTAYBgNVHRIEETAPgQ1z
|
25
|
+
ajI2QHNqMjYuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQCsa7k3TABBcyXotr3yCq6f
|
26
|
+
xsgbMG9FR71c4wRgVNQi9O3jN64fQBbxo//BQlHfPCjs1CeU4es9xdQFfhqXAPXG
|
27
|
+
P7mK3+qd5jObjh6l3/rDKrTXNS+P+YO/1frlZ6xPjCA8XgGc4y0rhAjZnVBDV6t1
|
28
|
+
kmdtEmue1s1OxaMakr78XRZDxEuAeLM5fg8MYnlOFygEcAH6lZkTjXavY7s9MXRB
|
29
|
+
AAMioxgB6J5QhXQ42OSWIzwHZIbSv3DV9Lf5sde50HIW5f9u5jn29TUGDhSWYKkh
|
30
|
+
LDvy9dfwMMOdIZi75Q8SBBib84AuwhMHIlUv9FcHhh3dXsDDYkrVrpUAwCsG6yCm
|
30
31
|
-----END CERTIFICATE-----
|
31
|
-
date:
|
32
|
+
date: 2022-07-08 00:00:00.000000000 Z
|
32
33
|
dependencies:
|
33
34
|
- !ruby/object:Gem::Dependency
|
34
35
|
name: rspec-core
|
@@ -50,14 +51,14 @@ dependencies:
|
|
50
51
|
requirements:
|
51
52
|
- - "~>"
|
52
53
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
54
|
+
version: '2.3'
|
54
55
|
type: :development
|
55
56
|
prerelease: false
|
56
57
|
version_requirements: !ruby/object:Gem::Requirement
|
57
58
|
requirements:
|
58
59
|
- - "~>"
|
59
60
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
61
|
+
version: '2.3'
|
61
62
|
- !ruby/object:Gem::Dependency
|
62
63
|
name: rake
|
63
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,7 +115,7 @@ dependencies:
|
|
114
115
|
- - ">="
|
115
116
|
- !ruby/object:Gem::Version
|
116
117
|
version: '0'
|
117
|
-
description:
|
118
|
+
description:
|
118
119
|
email: sj26@sj26.com
|
119
120
|
executables: []
|
120
121
|
extensions: []
|
@@ -126,17 +127,17 @@ files:
|
|
126
127
|
- lib/rspec/buildkite/annotation_formatter.rb
|
127
128
|
- lib/rspec/buildkite/recolorizer.rb
|
128
129
|
- lib/rspec/buildkite/version.rb
|
129
|
-
homepage: https://github.com/
|
130
|
+
homepage: https://github.com/buildkite/rspec-buildkite
|
130
131
|
licenses:
|
131
132
|
- MIT
|
132
133
|
metadata: {}
|
133
|
-
post_install_message:
|
134
|
+
post_install_message:
|
134
135
|
rdoc_options: []
|
135
136
|
require_paths:
|
136
137
|
- lib
|
137
138
|
required_ruby_version: !ruby/object:Gem::Requirement
|
138
139
|
requirements:
|
139
|
-
- - "
|
140
|
+
- - ">="
|
140
141
|
- !ruby/object:Gem::Version
|
141
142
|
version: '2.2'
|
142
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -145,9 +146,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
146
|
- !ruby/object:Gem::Version
|
146
147
|
version: '0'
|
147
148
|
requirements: []
|
148
|
-
|
149
|
-
|
150
|
-
signing_key:
|
149
|
+
rubygems_version: 3.3.7
|
150
|
+
signing_key:
|
151
151
|
specification_version: 4
|
152
152
|
summary: RSpec formatter creating Buildkite annotations for failures
|
153
153
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|