is_it_done_yet 0.3.0 → 0.4.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 +5 -5
- data/.gitignore +3 -2
- data/CHANGELOG.md +6 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +77 -0
- data/README.md +5 -2
- data/Rakefile +2 -0
- data/bin/console +1 -0
- data/examples/ci-clear +1 -0
- data/examples/ci-deploy +2 -0
- data/examples/ci-post +1 -0
- data/examples/ci-put +54 -0
- data/examples/ci-sync +13 -1
- data/examples/config.ru +6 -1
- data/is_it_done_yet.gemspec +15 -14
- data/lib/is_it_done_yet.rb +2 -0
- data/lib/is_it_done_yet/version.rb +3 -1
- data/lib/is_it_done_yet/web_app.rb +31 -0
- metadata +74 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e0bc205289b71dd555c838316ae32015e128f6c8a5b745cda9e3ad4634532842
|
4
|
+
data.tar.gz: 8e0b4d53bd08b6bec60cca9d3db3898ce1f3f262d42128389dbe6666a5afe47d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fecbd43c45b95141195fec9bfbe1f6c4136ac6d61f9f49be4309dce38d2d65473d72bafbb434c25d7f0fb38bb4542f58c03c480debdc22ea8cad7285fb240472
|
7
|
+
data.tar.gz: 4920233cd6b49f8d44cbcabcfdf77c583fef7b6813905417feedf9d05529a733e7f4672d88b4f28e6cdd0568b32c7b6523058029b8382f144a24a393e221a582
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
is_it_done_yet (0.4.0)
|
5
|
+
concurrent-ruby
|
6
|
+
json
|
7
|
+
rack-contrib
|
8
|
+
rack-token_auth
|
9
|
+
sinatra (~> 2.0)
|
10
|
+
thin
|
11
|
+
|
12
|
+
GEM
|
13
|
+
remote: https://rubygems.org/
|
14
|
+
specs:
|
15
|
+
byebug (10.0.2)
|
16
|
+
coderay (1.1.2)
|
17
|
+
concurrent-ruby (1.0.5)
|
18
|
+
daemons (1.2.6)
|
19
|
+
diff-lcs (1.3)
|
20
|
+
eventmachine (1.2.7)
|
21
|
+
json (2.1.0)
|
22
|
+
knapsack (1.16.0)
|
23
|
+
rake
|
24
|
+
method_source (0.9.0)
|
25
|
+
mustermann (1.0.2)
|
26
|
+
pry (0.11.3)
|
27
|
+
coderay (~> 1.1.0)
|
28
|
+
method_source (~> 0.9.0)
|
29
|
+
rack (2.0.5)
|
30
|
+
rack-contrib (2.0.1)
|
31
|
+
rack (~> 2.0)
|
32
|
+
rack-protection (2.0.1)
|
33
|
+
rack
|
34
|
+
rack-test (1.0.0)
|
35
|
+
rack (>= 1.0, < 3)
|
36
|
+
rack-token_auth (0.1.0)
|
37
|
+
rack
|
38
|
+
rake (12.3.1)
|
39
|
+
rspec (3.7.0)
|
40
|
+
rspec-core (~> 3.7.0)
|
41
|
+
rspec-expectations (~> 3.7.0)
|
42
|
+
rspec-mocks (~> 3.7.0)
|
43
|
+
rspec-core (3.7.1)
|
44
|
+
rspec-support (~> 3.7.0)
|
45
|
+
rspec-expectations (3.7.0)
|
46
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
47
|
+
rspec-support (~> 3.7.0)
|
48
|
+
rspec-mocks (3.7.0)
|
49
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
50
|
+
rspec-support (~> 3.7.0)
|
51
|
+
rspec-support (3.7.1)
|
52
|
+
sinatra (2.0.1)
|
53
|
+
mustermann (~> 1.0)
|
54
|
+
rack (~> 2.0)
|
55
|
+
rack-protection (= 2.0.1)
|
56
|
+
tilt (~> 2.0)
|
57
|
+
thin (1.7.2)
|
58
|
+
daemons (~> 1.0, >= 1.0.9)
|
59
|
+
eventmachine (~> 1.0, >= 1.0.4)
|
60
|
+
rack (>= 1, < 3)
|
61
|
+
tilt (2.0.8)
|
62
|
+
|
63
|
+
PLATFORMS
|
64
|
+
ruby
|
65
|
+
|
66
|
+
DEPENDENCIES
|
67
|
+
bundler
|
68
|
+
byebug
|
69
|
+
is_it_done_yet!
|
70
|
+
knapsack
|
71
|
+
pry
|
72
|
+
rack-test
|
73
|
+
rake
|
74
|
+
rspec
|
75
|
+
|
76
|
+
BUNDLED WITH
|
77
|
+
1.16.1
|
data/README.md
CHANGED
@@ -28,13 +28,16 @@ Or install it yourself as:
|
|
28
28
|
|
29
29
|
This library includes a Rack application which you can instantiate by doing `IsItDoneYet.build_app`. In the [example Rack config](examples/config.ru) there's a setup with token-based auth middleware. Include a similar `config.ru` at the root of your application and run `bundle exec rackup` to start the web app locally. If you're running it on a cloud service, follow your service's guidelines on deploying Rack applications.
|
30
30
|
|
31
|
-
The web app provides
|
32
|
-
* `POST /builds/:build_id/nodes/:node_id`
|
31
|
+
The web app provides five endpoints:
|
32
|
+
* `POST /builds/:build_id/nodes/:node_id` to write value for node, failing to overwrite.
|
33
33
|
- example request body: `{ "build_state" : "ok" }`
|
34
|
+
* `PUT /builds/:build_id/nodes/:node_id` to write or overwrite value for node.
|
35
|
+
- example request body: `{ "build_state" : "building", "build_state_on_overwrite" : "rebuilding" }`
|
34
36
|
* `GET /builds/:build_id`
|
35
37
|
- example response body: `{ "build_states": { "51": "bad", "52": "ok" } }`
|
36
38
|
* `GET /builds/:build_id/nodes/:node_id`
|
37
39
|
- example response body: `{ "build_state": "ok" }`
|
40
|
+
* `DELETE /builds/:build_id` to clear state for a build
|
38
41
|
|
39
42
|
The app keeps the build states in memory. This means that values will be lost after a restart of the service. Further, load balancing across multiple instances will only work if routing to the individual instance is consistent for the same `:build_id` path parameter, but scaling beyond one app instance is not currently a known use case.
|
40
43
|
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/examples/ci-clear
CHANGED
data/examples/ci-deploy
CHANGED
data/examples/ci-post
CHANGED
data/examples/ci-put
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
# Script that puts build and rebuild status of
|
5
|
+
# travis nodes (from ARGV[0] and ARGV[1]) to synchronising service
|
6
|
+
require 'net/http'
|
7
|
+
require 'uri'
|
8
|
+
require 'json'
|
9
|
+
|
10
|
+
env_ok = ENV['CI_NODE_INDEX'] &&
|
11
|
+
ENV['CI_NODE_TOTAL'] &&
|
12
|
+
ENV['IIDY_ENDPOINT'] &&
|
13
|
+
ENV['TRAVIS_BUILD_NUMBER'] &&
|
14
|
+
ENV['TRAVIS_JOB_NUMBER'] &&
|
15
|
+
ENV['IIDY_TOKEN']
|
16
|
+
|
17
|
+
args_ok = ARGV[0]
|
18
|
+
|
19
|
+
abort 'Bad env' unless env_ok
|
20
|
+
abort 'Bad args' unless args_ok
|
21
|
+
|
22
|
+
main_node = ENV['CI_NODE_INDEX'] == '0'
|
23
|
+
auth_token = "Token token=\"#{ENV['IIDY_TOKEN']}\""
|
24
|
+
|
25
|
+
if main_node
|
26
|
+
puts 'Main node!'
|
27
|
+
else
|
28
|
+
# publish progress
|
29
|
+
build_id = "is_it_done_yet--#{ENV['TRAVIS_BUILD_NUMBER']}"
|
30
|
+
node_id = ENV['TRAVIS_JOB_NUMBER']
|
31
|
+
|
32
|
+
url = ENV['IIDY_ENDPOINT'] +
|
33
|
+
"/builds/#{build_id}/nodes/#{node_id}"
|
34
|
+
|
35
|
+
puts "URL: #{url}"
|
36
|
+
|
37
|
+
uri = URI(url)
|
38
|
+
|
39
|
+
request = Net::HTTP::Put.new(uri)
|
40
|
+
request['Authorization'] = auth_token
|
41
|
+
request.body = {
|
42
|
+
build_state: ARGV[0],
|
43
|
+
build_state_on_overwrite: ARGV[1]
|
44
|
+
}.compact.to_json
|
45
|
+
request.content_type = 'application/json'
|
46
|
+
|
47
|
+
response = Net::HTTP.start(
|
48
|
+
uri.hostname,
|
49
|
+
uri.port,
|
50
|
+
use_ssl: uri.scheme == 'https'
|
51
|
+
) { |http| http.request(request) }
|
52
|
+
|
53
|
+
abort "Failed to put build status: #{response.code}" unless response.code == '204'
|
54
|
+
end
|
data/examples/ci-sync
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
# Script that queries build status of
|
4
5
|
# travis nodes from synchronising service
|
@@ -9,6 +10,8 @@ require 'uri'
|
|
9
10
|
require 'json'
|
10
11
|
|
11
12
|
OK_STATES = %w[OK GOOD].freeze
|
13
|
+
BUILDING_STATE = 'BUILDING'.freeze
|
14
|
+
REBUILDING_STATE = 'REBUILDING'.freeze
|
12
15
|
SLEEP_TIME_SECONDS = 30
|
13
16
|
|
14
17
|
env_ok = ENV['CI_NODE_INDEX'] &&
|
@@ -39,10 +42,11 @@ if main_node
|
|
39
42
|
expected_size = ENV['CI_NODE_TOTAL'].to_i - 1
|
40
43
|
attempts = 0
|
41
44
|
success = false
|
45
|
+
rebuilding = false
|
42
46
|
|
43
47
|
loop do
|
44
48
|
attempts += 1
|
45
|
-
abort 'Failed to fetch results' if attempts > 10
|
49
|
+
abort 'Failed to fetch results' if attempts > 10 && !rebuilding
|
46
50
|
|
47
51
|
puts "Attempt no. #{attempts} at fetching build states"
|
48
52
|
|
@@ -67,6 +71,14 @@ if main_node
|
|
67
71
|
next
|
68
72
|
end
|
69
73
|
|
74
|
+
rebuilding = build_states.any?{ |(_k, value)| REBUILDING_STATE == value.upcase }
|
75
|
+
building = build_states.any?{ |(_k, value)| BUILDING_STATE == value.upcase }
|
76
|
+
if rebuilding || building
|
77
|
+
puts 'Nodes are building or rebuilding'
|
78
|
+
sleep SLEEP_TIME_SECONDS
|
79
|
+
next
|
80
|
+
end
|
81
|
+
|
70
82
|
success = build_states.all? { |(_k, value)| OK_STATES.include?(value.upcase) }
|
71
83
|
break
|
72
84
|
end
|
data/examples/config.ru
CHANGED
@@ -1,17 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'bundler'
|
2
4
|
require 'rack/contrib'
|
3
5
|
require 'rack/token_auth'
|
4
6
|
require 'is_it_done_yet'
|
5
7
|
Bundler.require
|
6
8
|
|
9
|
+
<<<<<<< HEAD
|
10
|
+
=======
|
7
11
|
# Shared secret authentication
|
12
|
+
>>>>>>> bd110d4... EM: adding heartbeat to example setup
|
8
13
|
use Rack::TokenAuth do |token, _options, _env|
|
9
14
|
token == ENV['IIDY_TOKEN']
|
10
15
|
end
|
11
16
|
|
12
17
|
# Heartbeat endpoint
|
13
18
|
map '/health_check' do
|
14
|
-
run ->(_env) { [200, {
|
19
|
+
run ->(_env) { [200, { "Content-Type" => "text/plain" }, ["success"]] }
|
15
20
|
end
|
16
21
|
|
17
22
|
run IsItDoneYet.build_app
|
data/is_it_done_yet.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
lib = File.expand_path('
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
require 'is_it_done_yet/version'
|
6
6
|
|
@@ -34,18 +34,19 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.require_paths = ['lib']
|
35
35
|
|
36
36
|
# Always
|
37
|
-
spec.add_dependency 'concurrent-ruby'
|
38
|
-
spec.add_dependency '
|
39
|
-
spec.add_dependency '
|
40
|
-
spec.add_dependency 'rack-
|
41
|
-
spec.add_dependency '
|
42
|
-
spec.add_dependency '
|
37
|
+
spec.add_dependency 'concurrent-ruby'
|
38
|
+
spec.add_dependency 'json'
|
39
|
+
spec.add_dependency 'rack-contrib'
|
40
|
+
spec.add_dependency 'rack-token_auth'
|
41
|
+
spec.add_dependency 'sinatra', '~> 2.0'
|
42
|
+
spec.add_dependency 'thin'
|
43
43
|
|
44
44
|
# Development
|
45
|
-
spec.add_development_dependency 'bundler'
|
46
|
-
spec.add_development_dependency '
|
47
|
-
spec.add_development_dependency '
|
48
|
-
spec.add_development_dependency '
|
49
|
-
spec.add_development_dependency '
|
50
|
-
spec.add_development_dependency '
|
45
|
+
spec.add_development_dependency 'bundler'
|
46
|
+
spec.add_development_dependency 'byebug'
|
47
|
+
spec.add_development_dependency 'knapsack'
|
48
|
+
spec.add_development_dependency 'pry'
|
49
|
+
spec.add_development_dependency 'rack-test'
|
50
|
+
spec.add_development_dependency 'rake'
|
51
|
+
spec.add_development_dependency 'rspec'
|
51
52
|
end
|
data/lib/is_it_done_yet.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'is_it_done_yet/version'
|
2
4
|
require 'sinatra'
|
3
5
|
require 'concurrent'
|
@@ -37,6 +39,12 @@ module IsItDoneYet
|
|
37
39
|
settings.state[key] = [value, Time.now]
|
38
40
|
end
|
39
41
|
|
42
|
+
def merge(key:, value_if_absent:, value_if_present:)
|
43
|
+
settings.state.merge_pair(key, [value_if_absent, Time.now]) do
|
44
|
+
[value_if_present, Time.now]
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
40
48
|
def retrieve(key)
|
41
49
|
build_state, _t = settings.state[key]
|
42
50
|
build_state
|
@@ -104,5 +112,28 @@ module IsItDoneYet
|
|
104
112
|
|
105
113
|
201
|
106
114
|
end
|
115
|
+
|
116
|
+
# Example:
|
117
|
+
# PUT /builds/42/nodes/13?build_state=BUILDING&build_state_on_overwrite=REBUILDING
|
118
|
+
put '/builds/:build_id/nodes/:node_id' do
|
119
|
+
build_state, build_state_on_overwrite =
|
120
|
+
params.values_at('build_state', 'build_state_on_overwrite')
|
121
|
+
halt 400, NO_BUILD_STATE unless build_state
|
122
|
+
|
123
|
+
build_id, node_id = params.values_at('build_id', 'node_id')
|
124
|
+
k = key(build_id, node_id)
|
125
|
+
|
126
|
+
if build_state_on_overwrite
|
127
|
+
merge(
|
128
|
+
key: k,
|
129
|
+
value_if_absent: build_state,
|
130
|
+
value_if_present: build_state_on_overwrite
|
131
|
+
)
|
132
|
+
else
|
133
|
+
store(k, build_state)
|
134
|
+
end
|
135
|
+
|
136
|
+
204
|
137
|
+
end
|
107
138
|
end
|
108
139
|
end
|
metadata
CHANGED
@@ -1,183 +1,197 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: is_it_done_yet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Madsen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rack-contrib
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name: rack-
|
56
|
+
name: rack-token_auth
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: sinatra
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0
|
75
|
+
version: '2.0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0
|
82
|
+
version: '2.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: thin
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: bundler
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
103
|
+
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
110
|
+
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: byebug
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - "
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: knapsack
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- - "
|
129
|
+
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
131
|
+
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- - "
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: pry
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: rack-test
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- - "
|
157
|
+
- - ">="
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: '0
|
159
|
+
version: '0'
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- - "
|
164
|
+
- - ">="
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0
|
166
|
+
version: '0'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
168
|
+
name: rake
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
|
-
- - "
|
171
|
+
- - ">="
|
158
172
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
173
|
+
version: '0'
|
160
174
|
type: :development
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
|
-
- - "
|
178
|
+
- - ">="
|
165
179
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
180
|
+
version: '0'
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
182
|
+
name: rspec
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
|
-
- - "
|
185
|
+
- - ">="
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
187
|
+
version: '0'
|
174
188
|
type: :development
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
|
-
- - "
|
192
|
+
- - ">="
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
194
|
+
version: '0'
|
181
195
|
description: In case you need to carry out build steps in one of the nodes of your
|
182
196
|
CI project after the other nodes finish, e.g. deploying, then you need a way of
|
183
197
|
ascertaining the status of the other nodes. This is what is_it_done_yet is for.
|
@@ -192,6 +206,7 @@ files:
|
|
192
206
|
- CHANGELOG.md
|
193
207
|
- CODE_OF_CONDUCT.md
|
194
208
|
- Gemfile
|
209
|
+
- Gemfile.lock
|
195
210
|
- LICENSE.txt
|
196
211
|
- README.md
|
197
212
|
- Rakefile
|
@@ -200,6 +215,7 @@ files:
|
|
200
215
|
- examples/ci-clear
|
201
216
|
- examples/ci-deploy
|
202
217
|
- examples/ci-post
|
218
|
+
- examples/ci-put
|
203
219
|
- examples/ci-sync
|
204
220
|
- examples/config.ru
|
205
221
|
- is_it_done_yet.gemspec
|
@@ -227,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
227
243
|
version: '0'
|
228
244
|
requirements: []
|
229
245
|
rubyforge_project:
|
230
|
-
rubygems_version: 2.6
|
246
|
+
rubygems_version: 2.7.6
|
231
247
|
signing_key:
|
232
248
|
specification_version: 4
|
233
249
|
summary: Tracks statuses of CI build nodes
|