is_it_done_yet 0.3.0 → 0.4.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
- SHA1:
3
- metadata.gz: acd12c54ad56816b78a4dce97b4959ca75f13392
4
- data.tar.gz: 61d989bd6096d96b479d17b0823d360d8e374824
2
+ SHA256:
3
+ metadata.gz: e0bc205289b71dd555c838316ae32015e128f6c8a5b745cda9e3ad4634532842
4
+ data.tar.gz: 8e0b4d53bd08b6bec60cca9d3db3898ce1f3f262d42128389dbe6666a5afe47d
5
5
  SHA512:
6
- metadata.gz: 5e90bcdbe755b2430d43f1e3f9e4579e5ed262beeeb7eb0179aa0dad1531c6683a8ecbfc6cf8d56fdb286e2d451e176e7759cca98910a933147ccd41c82d8cb1
7
- data.tar.gz: a13eb75011f38fe0492df830e8f7a7a5a3d0c8cbc9816c08c7bfb548acb35a79a847454c1bd7acc68a4a755bf3c5817799dce0225af87a78151d0e75dbc41ba3
6
+ metadata.gz: fecbd43c45b95141195fec9bfbe1f6c4136ac6d61f9f49be4309dce38d2d65473d72bafbb434c25d7f0fb38bb4542f58c03c480debdc22ea8cad7285fb240472
7
+ data.tar.gz: 4920233cd6b49f8d44cbcabcfdf77c583fef7b6813905417feedf9d05529a733e7f4672d88b4f28e6cdd0568b32c7b6523058029b8382f144a24a393e221a582
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
- /.bundle/
1
+ git /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
@@ -12,3 +11,5 @@
12
11
  .rspec_status
13
12
  *.gem
14
13
  .byebug_history
14
+
15
+ .DS_Store
@@ -1,3 +1,9 @@
1
+ # 0.4.0
2
+
3
+ Features:
4
+
5
+ * Introduced `PUT /builds/:build_id/nodes/:node_id` which enables CI scripts that update node values for instance when rebuilding.
6
+
1
7
  # 0.3.0
2
8
 
3
9
  Features:
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in is_it_done_yet.gemspec
@@ -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 three endpoints:
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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
  require 'knapsack'
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'is_it_done_yet'
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  # Script that clears build status of
4
5
  # travis nodes from synchronising service
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
2
4
  main_node = ENV['CI_NODE_INDEX'] == '0'
3
5
 
4
6
  if main_node
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  # Script that posts build status of
4
5
  # travis nodes (from ARGV[0]) to synchronising service
@@ -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
@@ -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
@@ -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, { 'Content-Type' => 'text/plain' }, ['success']] }
19
+ run ->(_env) { [200, { "Content-Type" => "text/plain" }, ["success"]] }
15
20
  end
16
21
 
17
22
  run IsItDoneYet.build_app
@@ -1,6 +1,6 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('../lib', __FILE__)
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', '~> 1'
38
- spec.add_dependency 'sinatra', '~> 1.4'
39
- spec.add_dependency 'thin', '~> 1.7'
40
- spec.add_dependency 'rack-contrib', '~> 1.4'
41
- spec.add_dependency 'rack-token_auth', '~> 0.1'
42
- spec.add_dependency 'json', '~> 2'
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', '~> 1.14'
46
- spec.add_development_dependency 'rake', '~> 10.0'
47
- spec.add_development_dependency 'rspec', '~> 3.0'
48
- spec.add_development_dependency 'rack-test', '~> 0.6'
49
- spec.add_development_dependency 'knapsack', '~> 1.13'
50
- spec.add_development_dependency 'byebug', '~> 9'
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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'is_it_done_yet/version'
2
4
  require 'is_it_done_yet/web_app'
3
5
  require 'rack/contrib'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module IsItDoneYet
2
- VERSION = '0.3.0'.freeze
4
+ VERSION = '0.4.0'
3
5
  end
@@ -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.3.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: 2017-04-25 00:00:00.000000000 Z
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: '1'
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: '1'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: sinatra
28
+ name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.4'
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: '1.4'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: thin
42
+ name: rack-contrib
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.7'
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: '1.7'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rack-contrib
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: '1.4'
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: '1.4'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rack-token_auth
70
+ name: sinatra
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.1'
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.1'
82
+ version: '2.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: json
84
+ name: thin
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '2'
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: '2'
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: '1.14'
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: '1.14'
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: rake
112
+ name: byebug
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '10.0'
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: '10.0'
124
+ version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rspec
126
+ name: knapsack
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: '3.0'
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: '3.0'
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.6'
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.6'
166
+ version: '0'
153
167
  - !ruby/object:Gem::Dependency
154
- name: knapsack
168
+ name: rake
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - "~>"
171
+ - - ">="
158
172
  - !ruby/object:Gem::Version
159
- version: '1.13'
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: '1.13'
180
+ version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
- name: byebug
182
+ name: rspec
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
- - - "~>"
185
+ - - ">="
172
186
  - !ruby/object:Gem::Version
173
- version: '9'
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: '9'
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.11
246
+ rubygems_version: 2.7.6
231
247
  signing_key:
232
248
  specification_version: 4
233
249
  summary: Tracks statuses of CI build nodes