envirobly 0.3.2 → 0.4.1

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: c9db9acf27d0480b89b7829efadea376640b537d25b36203c7d46594085dce72
4
- data.tar.gz: 6a69d1efe90f96e9e4d6fd468f636f91172df47fe628e8e74df48b8bb6214a67
3
+ metadata.gz: a692c3ec890efdcb6ddf861e0503f3b64fe7266bcd460e4744aec19ab559fbcd
4
+ data.tar.gz: b65bf97e5d0e776035785b28566075818c2dd6db27a99c857a6300b1a4b7e9c3
5
5
  SHA512:
6
- metadata.gz: cc358238c869bd05a9f524ad746272f4d8a796b13e7c23691cc69764c9b6fa0b4b6a16282abde51635d020136c563acffa89a9803449d8c13c8aa180d9b5045b
7
- data.tar.gz: e656b358d128c91d68217430f53b6f3e8962b2149f043e03a9c812e12718f0e32b2613d51c7abbdaa7123eed0b6a25cf7754efd27b469e18701458649a8611e5
6
+ metadata.gz: 21b037970cc3dd974cb5f6660ff33fc846973565794b2601a7a64c1057c00fd320f673345428434184e9b17fbd3dc62a71d1c4495d0c32df5707921337d2c5ad
7
+ data.tar.gz: 86cf8cfce266fd410e669e05c29c0b28d297cba701fb2c991a759f45e0eb5b3ce61033f44d83f77269e0bc80feaae918172f587fa5546439804ec04b09e7f2cc
data/lib/envirobly/api.rb CHANGED
@@ -38,22 +38,29 @@ class Envirobly::Api
38
38
  end
39
39
  end
40
40
 
41
- private
42
- def get_as_json(uri, headers: {})
43
- request(uri, type: Net::HTTP::Get, headers:)
41
+ def get_as_json(url, headers: {})
42
+ request(url, type: Net::HTTP::Get, headers:)
43
+ end
44
+
45
+ def post_as_json(url, params: {}, headers: {})
46
+ request(url, type: Net::HTTP::Post, headers:) do |request|
47
+ request.body = params.to_json
44
48
  end
49
+ end
45
50
 
46
- def post_as_json(uri, params: {}, headers: {})
47
- request(uri, type: Net::HTTP::Post, headers:) do |request|
48
- request.body = params.to_json
49
- end
51
+ def put_as_json(url, params: {}, headers: {})
52
+ request(url, type: Net::HTTP::Put, headers:) do |request|
53
+ request.body = params.to_json
50
54
  end
55
+ end
51
56
 
57
+ private
52
58
  def api_v1_deployments_url
53
59
  URI::HTTPS.build(host: HOST, path: "/api/v1/deployments")
54
60
  end
55
61
 
56
- def request(uri, type:, headers: {})
62
+ def request(url, type:, headers: {})
63
+ uri = URI(url)
57
64
  http = Net::HTTP.new uri.host, uri.port
58
65
  http.use_ssl = true
59
66
  http.open_timeout = 10
@@ -12,7 +12,13 @@ class Envirobly::Cli::Main < Envirobly::Base
12
12
  end
13
13
 
14
14
  desc "set_access_token TOKEN", "Save and use an access token generated at Envirobly"
15
- def set_access_token(token)
15
+ def set_access_token
16
+ token = ask("Access Token:", echo: false).strip
17
+ if token == ""
18
+ $stderr.puts "Token can't be empty."
19
+ exit 1
20
+ end
21
+
16
22
  Envirobly::AccessToken.new(token).save
17
23
  end
18
24
 
@@ -39,18 +39,21 @@ class Envirobly::Deployment
39
39
  end
40
40
  end
41
41
 
42
- api = Envirobly::Api.new
43
- response = api.create_deployment params
44
- response = api.get_deployment_with_delay_and_retry response.object.fetch("url")
42
+ @api = Envirobly::Api.new
43
+ response = @api.create_deployment params
44
+ @url = response.object.fetch("url")
45
+ response = @api.get_deployment_with_delay_and_retry @url
45
46
  @credentials = Envirobly::Aws::Credentials.new response.object.fetch("credentials")
46
47
  @bucket = response.object.fetch("bucket")
47
48
 
48
49
  if archive_commit_and_upload
49
- $stderr.puts "Build context exported into #{archive_uri}"
50
+ $stderr.puts "Build context uploaded."
50
51
  else
51
52
  $stderr.puts "Error exporting build context. Aborting."
52
53
  exit 1
53
54
  end
55
+
56
+ # TODO: Output URL to watch the deployment progress
54
57
  end
55
58
 
56
59
  private
@@ -60,6 +63,13 @@ class Envirobly::Deployment
60
63
 
61
64
  def archive_commit_and_upload
62
65
  `git archive --format=tar.gz #{@commit.ref} | #{@credentials.as_inline_env_vars} aws s3 cp - #{archive_uri}`
63
- $?.success?
66
+ $?.success?.tap do |result|
67
+ params = {
68
+ deployment: {
69
+ build_context_available: result
70
+ }
71
+ }
72
+ @api.put_as_json @url, params: params
73
+ end
64
74
  end
65
75
  end
@@ -6,15 +6,15 @@ class Envirobly::Git::Commit
6
6
  end
7
7
 
8
8
  def exists?
9
- `git cat-file -t #{@ref}`.chomp("") == "commit"
9
+ `git cat-file -t #{@ref}`.strip == "commit"
10
10
  end
11
11
 
12
12
  def ref
13
- @normalized_ref ||= `git rev-parse #{@ref}`.chomp("")
13
+ @normalized_ref ||= `git rev-parse #{@ref}`.strip
14
14
  end
15
15
 
16
16
  def message
17
- `git log #{@ref} -n1 --pretty=%B`.chomp("")
17
+ `git log #{@ref} -n1 --pretty=%B`.strip
18
18
  end
19
19
 
20
20
  def time
@@ -1,3 +1,3 @@
1
1
  module Envirobly
2
- VERSION = "0.3.2"
2
+ VERSION = "0.4.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: envirobly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Starsi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-08 00:00:00.000000000 Z
11
+ date: 2024-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor