fast_ci 1.0.10 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bd1932ce58a8a70869d78bd3f2565e6579913fa30e714c401e0f495c67d972bf
4
- data.tar.gz: efe6e817a021281f499863617df04b6b8e2686dc9c61fafa40a8b54acffa1f80
3
+ metadata.gz: c198e20b22117ce90305fa7c2f82c512ef268097b46c63fcb9cdfaaa9c45aa1d
4
+ data.tar.gz: cede75f91ab2fad8ee74715660a273ed9a0f229f40beb0875b4edc6ae253d550
5
5
  SHA512:
6
- metadata.gz: c8eb904233f82aa9474b89212e653308127fd897c8156f10c3eada6cbfe0fccc69831c6f41e55b798c755067b2049e3f393cda2e4141afc9a70ded67994168b8
7
- data.tar.gz: 58bb57f5560a0d40004d31dae417773d8b2e490bd85b77e8b9eeec6c638367815c3a633b071086202df22b87affbcf7c2f19eadd6536267de1fbf71a4374e829
6
+ metadata.gz: 04040e4fff496fe2065fc2f120160fc29f253322abe3f6f526f9516e88bd9feb98ddb1319ce161858f204eacc2c59d6dccd2390645b1f168e254a91ad1ccb89e
7
+ data.tar.gz: 168c07fddb1154357fa647d5d59e61a8a248206f933a96f437ff4ac8d2a485b56c8b15b0cecc05a9974ad181d8cff8cc999129767ae92de4993c6ea20fdbd40c
data/Gemfile.lock CHANGED
@@ -11,7 +11,7 @@ GIT
11
11
  PATH
12
12
  remote: .
13
13
  specs:
14
- fast_ci (1.0.10)
14
+ fast_ci (1.1.0)
15
15
  async-websocket (<= 0.20.0)
16
16
  brakeman (>= 5.4.1)
17
17
  console (>= 1.10.0)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FastCI
4
- VERSION = "1.0.10"
4
+ VERSION = "1.1.0"
5
5
  end
data/lib/fast_ci.rb CHANGED
@@ -54,8 +54,16 @@ module FastCI
54
54
  minitest_ws.await
55
55
  end
56
56
 
57
+ def error(msg)
58
+ STDERR.puts "\e[31m[FastCI] #{msg}\e[0m"
59
+ end
60
+
57
61
  def debug(msg)
58
- puts "\n\e[36mDEBUG: \e[0m #{msg}\n" if ENV["FAST_CI_DEBUG"]
62
+ puts "\e[36mDEBUG: \e[0m #{msg}\n" if ENV["FAST_CI_DEBUG"]
63
+ end
64
+
65
+ def log(msg)
66
+ puts "\e[0m[FastCI] #{msg}\e[0m"
59
67
  end
60
68
 
61
69
  def report_options(run_key, content)
@@ -132,22 +140,21 @@ module FastCI
132
140
  self.connection = connection
133
141
  self.task = task
134
142
  yield
143
+
144
+ leave
135
145
  end
136
146
  rescue Async::WebSocket::ProtocolError => e
137
147
  case e.message
138
148
  when "Failed to negotiate connection: 401"
139
- STDERR.puts "Failed to connect: Invalid secret key!"
149
+ FastCI.error("Failed to connect: Invalid secret key!")
140
150
  exit 2
141
151
  when "Failed to negotiate connection: 403"
142
- STDERR.puts "Failed to connect: Invalid or disabled run key!"
152
+ FastCI.error("Failed to connect: Invalid or disabled run key!")
143
153
  exit 2
144
- when "Failed to negotiate connection: 500"
145
- STDERR.puts "Failed to connect: General connection error!"
154
+ else
155
+ FastCI.error("Failed to connect: General connection error!")
146
156
  exit 2
147
157
  end
148
- ensure
149
-
150
- leave
151
158
  end
152
159
  end
153
160
  end
@@ -164,7 +171,7 @@ module FastCI
164
171
 
165
172
  case response&.dig(:event) || message[:event]
166
173
  when "phx_error"
167
- raise("[FastCI] Unexpected error")
174
+ raise("Unexpected server error")
168
175
  when "join"
169
176
  handle_join(response)
170
177
  when "failed_join"
@@ -180,15 +187,12 @@ module FastCI
180
187
  else
181
188
  break
182
189
  end
183
- when "error"
184
- raise(response.inspect)
185
190
  else
186
- puts response
191
+ raise(response.inspect)
187
192
  end
188
193
  end
189
194
  rescue => e
190
- puts e.message
191
- puts e.backtrace.join("\n")
195
+ FastCI.error("Unexpected error: #{e.message}\n\t#{e.backtrace.join("\n\t")}")
192
196
  task&.stop
193
197
  end
194
198
  end
@@ -199,7 +203,7 @@ module FastCI
199
203
  def leave
200
204
  send_msg("leave")
201
205
  connection.close
202
- rescue StandardError => e
206
+ rescue
203
207
  # noop
204
208
  end
205
209
 
@@ -228,8 +232,13 @@ module FastCI
228
232
  end
229
233
 
230
234
  def handle_join_fail(response)
231
- STDERR.puts "Can't join because of test state being: #{response[:state]}"
232
- exit 3
235
+ if response[:state] == "passed"
236
+ FastCI.log("Can't join because of run's state being: #{response[:state]}")
237
+ exit 0
238
+ else
239
+ FastCI.error("Can't join because of run's state being: #{response[:state]}")
240
+ exit 1
241
+ end
233
242
  end
234
243
 
235
244
  def handle_deq_request(_response)
@@ -241,7 +250,7 @@ module FastCI
241
250
  end
242
251
 
243
252
  def topic
244
- "test_orchestrator:#{run_key}-#{FastCI.configuration.build_id}"
253
+ "test_orchestrator:#{run_key}-#{FastCI.configuration.commit}-#{FastCI.configuration.build_id}"
245
254
  end
246
255
 
247
256
  def endpoint
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fast_ci
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nesha Zoric
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-05 00:00:00.000000000 Z
11
+ date: 2024-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: console