afterlife 1.5.0 → 1.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: e03a1499e1af905014e5fb48d8865601a0bb354a856d56dc0a629a3b3c08a99b
4
- data.tar.gz: 345db972b71109a69d3117e3ef5e3a8fc8cc4aec094c230f9b49ea46e2c206e3
3
+ metadata.gz: 92e4638508e3ce213a3fa2153f379d4ec46f4853f2e3e5e51de581ce67895c2a
4
+ data.tar.gz: 8f390b018a8317bbd7c34be245e7515ed86da8305b1c8277ef8845def65e5b87
5
5
  SHA512:
6
- metadata.gz: 2a4b14afb3f286756663da5d5c6c039cd0c327cf8a9ad60a3c20b04d994fdba73b2270892b209cbf9ece8f424e17e2e6eab9798f93416c254aa4549b486a41fc
7
- data.tar.gz: 89e9ec3e6d10345f8baeea198d0dde968d96b438cc5312a7d2f545176b4755bd6953b0ad0ad60663015c33b8ac477f5bacb3aa1948bc320a1495cfd1602396ef
6
+ metadata.gz: 4393072985a2d8ed6d91cd33dc46ccb2c9ab14474f42aaedc7925e4623ff690a465059799b7dcbf1e59111350e0b7c5368520b68fd0b5909d155ea49e907dabb
7
+ data.tar.gz: 1331c720e2f79068e2ea72734b92336f9cf6468e24f64d94c8bbfcd5511b40f556d7c0dacda9f4562a6221542caafaf4e62297fcabf9511a9971e43eefc224f8
@@ -23,6 +23,10 @@ module Afterlife
23
23
  end
24
24
  end
25
25
 
26
+ def deploy_notification_url
27
+ config[:deploy_notification_url]
28
+ end
29
+
26
30
  private
27
31
 
28
32
  def config
@@ -20,6 +20,7 @@ module Afterlife
20
20
  --exclude '*.ts'
21
21
  --exclude '*.tsx'
22
22
  --exclude '*.esm.js'
23
+ --exclude '*.map'
23
24
  --size-only
24
25
  --cache-control 'public, max-age=31540000'
25
26
  BASH
@@ -13,10 +13,8 @@ module Afterlife
13
13
  Afterlife.cli = self
14
14
  Deploy.call(stage, options) do |deployment|
15
15
  setup_deploy(deployment)
16
- say_status 'Deploying', deployment.initial_message
17
- deployment.run
18
- say_status 'Deployed', deployment.output
19
- run_after_hooks
16
+ process_deploy(deployment)
17
+ Notify.call(Afterlife.current_repo.name, Afterlife.current_stage.name)
20
18
  end
21
19
  rescue Afterlife::Error => e
22
20
  fatal!(e.message)
@@ -24,6 +22,13 @@ module Afterlife
24
22
 
25
23
  private
26
24
 
25
+ def process_deploy(deployment)
26
+ say_status 'Deploying', deployment.initial_message
27
+ deployment.run
28
+ say_status 'Deployed', deployment.output
29
+ run_after_hooks
30
+ end
31
+
27
32
  def run_after_hooks
28
33
  return if options['skip-after-hooks']
29
34
 
@@ -3,7 +3,6 @@
3
3
  module Afterlife
4
4
  module Deploy
5
5
  class Deployment
6
-
7
6
  attr_reader :options
8
7
 
9
8
  def initialize(options)
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'net/http'
4
+
5
+ module Afterlife
6
+ module Notify
7
+ module_function
8
+
9
+ def call(repository, branch)
10
+ return if notification_url.empty?
11
+
12
+ response = send_request(repository, branch)
13
+
14
+ return if response.code == '200'
15
+
16
+ fail Error,
17
+ "The deploy notification URL returned a #{response.code} status code, " \
18
+ 'and the notification may not have been sent.'
19
+ end
20
+
21
+ def notification_url
22
+ @notification_url ||= ENV.fetch('AFTERLIFE_DEPLOY_NOTIFICATION_URL', nil) \
23
+ || Afterlife.config.deploy_notification_url \
24
+ || Afterlife.current_repo.conf.dig(:deploy, :deploy_notification_url) \
25
+ || ''
26
+ end
27
+
28
+ def send_request(repository, branch)
29
+ uri = URI(notification_url)
30
+ body = {
31
+ branch: branch,
32
+ repository: repository,
33
+ }
34
+ headers = { 'Content-Type': 'application/json' }
35
+ Net::HTTP.post(uri, body.to_json, headers)
36
+ end
37
+ end
38
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Afterlife
4
- VERSION = '1.5.0'
4
+ VERSION = '1.6.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: afterlife
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genaro Madrid
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-31 00:00:00.000000000 Z
11
+ date: 2024-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -133,6 +133,7 @@ files:
133
133
  - lib/afterlife/deploy/kubernetes_deployment.rb
134
134
  - lib/afterlife/environment.rb
135
135
  - lib/afterlife/exec.rb
136
+ - lib/afterlife/notify.rb
136
137
  - lib/afterlife/release.rb
137
138
  - lib/afterlife/release/change_version.rb
138
139
  - lib/afterlife/release/cli.rb