envirobly 0.4.0 → 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: 8521bb77bbc2267680443ade9607012f3a4af41a372fe164773337ba950d348b
4
- data.tar.gz: 4488b8c5b290a1d33d70937d079de96763c9e38214678181947b5b3521e1610d
3
+ metadata.gz: a692c3ec890efdcb6ddf861e0503f3b64fe7266bcd460e4744aec19ab559fbcd
4
+ data.tar.gz: b65bf97e5d0e776035785b28566075818c2dd6db27a99c857a6300b1a4b7e9c3
5
5
  SHA512:
6
- metadata.gz: 9cc2a09ab7ee07c3a00ca3efb5991e5f012defb1c5292f477132ccb05d8683f1b2120b9104c9f0dfeaa29b0ebbc82ed886da2aaf0412aeb92ab0739d6ae9c0aa
7
- data.tar.gz: 55b4a08c6efddb24b5c7365955becb485e58bde5faba1e7e4c3407496dca7f2b286c0187601682aeb085aff879c4b9f65d24a0af42d7c564f2dc88ec239382f1
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Envirobly
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: envirobly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Starsi