brasa 0.5.1 → 0.6.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: f58d1ef47800a723afab0a3b260562f7704a4b72e0ac364471a0dcc2b0445078
4
- data.tar.gz: c1c9063b7c415605ab60e4bf2deb7274e6780c4bcf7ed7ad755b609c24d2c845
3
+ metadata.gz: a728c8d3747051635cf62354d9e1be55a04e3d677a5f5df9f6c3b7bc45578a02
4
+ data.tar.gz: 79cbc855852b1dfcd5bb9d08aa2be22a8de867e5ef687b232abc741e719194b8
5
5
  SHA512:
6
- metadata.gz: 60d66b1edd7299319e0ae56964e9b1595a18f7c49879aca09bdf02f5d023d256a31d3ce0d75719964fef60dfcbc55517497fb715ee2c778feacf3648b118742b
7
- data.tar.gz: 10b6eed8ee2bf1236e28c83ab98d0d4151da0d3a59bb6efcfb01af585f92a24339a1a53bd7f7e01f5dfc24d7ef9a718e84b19211afda4e3425d5cd39c3ae7b9a
6
+ metadata.gz: 8288ced4e3c745f096703aa9bf7184c0508a7131e259615e8ad0393b5c8ad3ffe6f95a872e9fba14c377afa6fdde950293dafa8c167245e03cefd38441eec259
7
+ data.tar.gz: 65c522b9ab984069496ead760d8f8a476c07c82304972a03afca86beee84fe2aed0ce994b455e2dca82c986532327fb6b5a257cb375ba8ace19fdef1a082d5cf
@@ -1,5 +1,6 @@
1
1
  require "brasa/commands/base"
2
2
  require "brasa/source_packer"
3
+ require "tty-spinner"
3
4
 
4
5
  module Brasa
5
6
  module Commands
@@ -15,11 +16,13 @@ module Brasa
15
16
  info("Empacotando código...")
16
17
  archive_path = SourcePacker.pack
17
18
  size_kb = File.size(archive_path) / 1024
18
- info("Enviando #{size_kb}KB para o servidor...")
19
19
 
20
+ spinner = TTY::Spinner.new("#{pastel.cyan(" Enviando #{size_kb}KB...")} :spinner", format: :dots)
21
+ spinner.auto_spin
20
22
  deploy = api.upload("/api/v1/apps/#{slug}/deploys",
21
23
  file_path: archive_path,
22
24
  params: { branch: options["branch"] || project_config[:branch] || "main" })
25
+ spinner.success(pastel.green("enviado!"))
23
26
  info("Deploy ##{deploy["id"]} criado.")
24
27
  info(" Na fila...")
25
28
 
@@ -36,7 +39,7 @@ module Brasa
36
39
  ws = connect_websocket
37
40
  started = Time.now
38
41
 
39
- ws.on_log { |msg| print msg["line"] + "\n" if msg["line"] }
42
+ ws.on_log { |msg| print msg["line"] + "\n" if msg.is_a?(Hash) && msg["line"] }
40
43
  ws.subscribe("DeployLogChannel", deploy_id: deploy_id)
41
44
 
42
45
  status = ws.wait_for("DeployStatusChannel",
@@ -6,11 +6,11 @@ module Brasa
6
6
  module Commands
7
7
  class Init < Base
8
8
  PRESETS = {
9
- "nano" => "Nano — 1 vCPU, 1GB RAM, DB embedded (R$ 19/mês)",
10
- "micro" => "Micro — 1 vCPU, 1GB RAM, DB embedded (R$ 29/mês)",
11
- "hobby" => "Hobby — 1 vCPU, 1GB RAM, DB managed (R$ 99/mês)",
12
- "production" => "Production — 4 vCPU, 4GB RAM, DB managed + storage (R$ 299/mês)",
13
- "scale" => "Scale — 8 vCPU, 8GB RAM, DB managed + storage (R$ 599/mês)"
9
+ "nano" => "Nano — 1 vCPU, 1GB RAM, 10GB disco, DB embedded (R$ 19/mês) [Node.js/Docker]",
10
+ "micro" => "Micro — 1 vCPU, 2GB RAM, 20GB disco, DB embedded (R$ 29/mês)",
11
+ "hobby" => "Hobby — 1 vCPU, 2GB RAM, 40GB disco, DB managed (R$ 99/mês)",
12
+ "production" => "Production — 2 vCPU, 4GB RAM, 40GB disco, DB managed + storage (R$ 299/mês)",
13
+ "scale" => "Scale — 4 vCPU, 8GB RAM, 100GB disco, DB managed + storage (R$ 599/mês)"
14
14
  }.freeze
15
15
 
16
16
  REGIONS = { "br-se1" => "São Paulo", "br-ne1" => "Nordeste" }.freeze
@@ -1,5 +1,6 @@
1
1
  require "brasa/commands/base"
2
2
  require "brasa/source_packer"
3
+ require "tty-spinner"
3
4
 
4
5
  module Brasa
5
6
  module Commands
@@ -79,9 +80,13 @@ module Brasa
79
80
  info("Empacotando código...")
80
81
  archive_path = SourcePacker.pack
81
82
  size_kb = File.size(archive_path) / 1024
82
- info("Enviando #{size_kb}KB para o servidor...")
83
- api.upload("/api/v1/apps/#{slug}/deploys", file_path: archive_path,
84
- params: { branch: project_config[:branch] || "main" })
83
+
84
+ spinner = TTY::Spinner.new("#{pastel.cyan(" Enviando #{size_kb}KB...")} :spinner", format: :dots)
85
+ spinner.auto_spin
86
+ result = api.upload("/api/v1/apps/#{slug}/deploys", file_path: archive_path,
87
+ params: { branch: project_config[:branch] || "main" })
88
+ spinner.success(pastel.green("enviado!"))
89
+ result
85
90
  ensure
86
91
  FileUtils.rm_f(archive_path) if archive_path
87
92
  end
@@ -117,7 +122,7 @@ module Brasa
117
122
  ws = connect_websocket
118
123
  started = Time.now
119
124
 
120
- ws.on_log { |msg| print msg["line"] + "\n" if msg["line"] }
125
+ ws.on_log { |msg| print msg["line"] + "\n" if msg.is_a?(Hash) && msg["line"] }
121
126
  ws.subscribe("DeployLogChannel", deploy_id: deploy_id)
122
127
 
123
128
  status = ws.wait_for("DeployStatusChannel",
@@ -155,7 +160,10 @@ module Brasa
155
160
  PROVISION_MAX_POLLS.times do |i|
156
161
  app = api.get("/api/v1/apps/#{slug}")
157
162
  return true if app["status"] == "active"
158
- return (error("\nErro no provisionamento."); false) if app["status"] == "error"
163
+ if app["status"] == "error"
164
+ error("\nErro no provisionamento.")
165
+ return false
166
+ end
159
167
  if app["status"] != last_status
160
168
  print "\n #{status_label(app["status"])}"
161
169
  last_status = app["status"]
@@ -177,7 +185,10 @@ module Brasa
177
185
  DEPLOY_MAX_POLLS.times do |i|
178
186
  deploy = api.get("/api/v1/apps/#{slug}/deploys/#{deploy_id}")
179
187
  return true if deploy["status"] == "live"
180
- return (error("\nDeploy falhou."); false) if deploy["status"] == "failed"
188
+ if deploy["status"] == "failed"
189
+ error("\nDeploy falhou.")
190
+ return false
191
+ end
181
192
  if deploy["status"] != last_status
182
193
  print "\n #{status_label(deploy["status"])}"
183
194
  last_status = deploy["status"]
data/lib/brasa/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Brasa
2
- VERSION = "0.5.1"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -80,7 +80,7 @@ module Brasa
80
80
  data = JSON.parse(msg.data)
81
81
  client.send(:handle_message, data)
82
82
  rescue JSON::ParserError
83
- $stderr.puts "[WS] Mensagem malformada ignorada: #{msg.data.to_s.truncate(100)}" if ENV["BRASA_DEBUG"]
83
+ $stderr.puts "[WS] Mensagem malformada ignorada: #{msg.data.to_s[0..100]}" if ENV["BRASA_DEBUG"]
84
84
  end
85
85
  end
86
86
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brasa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brasa