puma-redeploy 0.3.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ed0d1a89c2ce26afe253893f3a716e346edb7b7bfe109c0acf6c1cc2599db23
4
- data.tar.gz: 39a7a76965ca098d9dcfb0586d5d96f3c47326fafd4aa22b3a6a9f68d7358e4b
3
+ metadata.gz: 438b5a1a33d18652f621427ffcee0dab9a5ed4a867786e3a36300bf573441d0c
4
+ data.tar.gz: 477f2d13c06ec397c884714756154d23585f97fb5612d2105fb4f700b2c1a9de
5
5
  SHA512:
6
- metadata.gz: dfd1f53e8d88ea177310c7797428f924ac4b865dcce699a6f299be86510a6d1b702b86fbc934cba9c727f3df6a2834194c6ecfde4b113b7a0ebf845b264989fc
7
- data.tar.gz: c9bd80080b88819fbd3a03ec49cd8649fa80dbc6b10d15d2a2f063b97ed74aabb276aac02df48a6a1744033af0240be17ca95ef6b85a88626ff65f306e638575
6
+ metadata.gz: 00df55137d4a94b9dde2c1b59060fb2a2e3fed0a07f281fe2fc323c878d79a24026ddec962110c42f15372b991b81d10953145948e16102e3eaf260f6348a503
7
+ data.tar.gz: 457965823bad1a219663774a4ad9dfb16e91993e86a744c768c3eeb90b5b0d2af438d17837c6cf58d216e15b77803e653d4fc6bd6c6c6eb625f56406e8b4c3ef
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  # Changelog
2
2
 
3
- ## v0.3.x (NEXT)
3
+ ## v0.3.2
4
+
5
+ **Fixes and enhancements:**
6
+
7
+ - Improve s3 error handling
8
+
9
+ ## v0.3.1
10
+
11
+ **Fixes and enhancements:**
12
+
13
+ - Allow watch file to not exist
4
14
 
5
15
 
6
16
  ## v0.3.0
data/Gemfile CHANGED
@@ -4,3 +4,12 @@ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in puma-redeploy.gemspec
6
6
  gemspec
7
+
8
+ gem 'rake', '~> 13.0.6'
9
+ gem 'rspec', '~> 3.12.0'
10
+ gem 'rubocop', '~> 1.43'
11
+ gem 'rubocop-performance', '~> 1.15'
12
+ gem 'rubocop-rake', '~> 0.6.0'
13
+ gem 'rubocop-rspec', '~> 2.17'
14
+ gem 'rubocop-thread_safety', '~> 0.4.4'
15
+ gem 'timecop', '~> 0.9.6'
data/README.md CHANGED
@@ -16,6 +16,7 @@ Key Points:
16
16
 
17
17
  Example application can be found [here](https://github.com/tbeauvais/puma-redeploy-test-app)
18
18
 
19
+ Also see the [sidekiq-redeploy](https://github.com/tbeauvais/sidekiq-redeploy) gem.
19
20
 
20
21
  ## Installation
21
22
 
@@ -75,7 +76,7 @@ Usage: archive-loader [options]. Used to load the archive prior to starting the
75
76
 
76
77
  For example this will fetch and unzip the application archive and then start puma.
77
78
  ```shell
78
- archive-loader /app /app/pkg/watch.me && bundle exec puma -C config/puma.rb
79
+ archive-loader -a /app -w /app/pkg/watch.me && bundle exec puma -C config/puma.rb
79
80
  ```
80
81
 
81
82
  ## Development
@@ -18,6 +18,8 @@ module Puma
18
18
 
19
19
  def archive_file
20
20
  s3_url = read_watch_object
21
+ return unless s3_url
22
+
21
23
  archive_bucket_name, archive_object_key = s3_object_reference(s3_url)
22
24
 
23
25
  response = s3_client.get_object(bucket: archive_bucket_name, key: archive_object_key)
@@ -26,6 +28,8 @@ module Puma
26
28
  # Write the object data to a local file
27
29
  File.binwrite(file_name, response.body.read)
28
30
  file_name
31
+ rescue StandardError => e
32
+ logger.warn "Error reading fetching archive file for #{s3_url}. Error:#{e.message}"
29
33
  end
30
34
 
31
35
  private
@@ -44,6 +48,8 @@ module Puma
44
48
  object = s3_client.get_object(bucket: bucket_name, key: object_key)
45
49
 
46
50
  object.body.read.strip
51
+ rescue StandardError => e
52
+ logger.warn "Error reading url from watch file #{bucket_name}/#{object_key}. Error:#{e.message}"
47
53
  end
48
54
 
49
55
  def touched_at
@@ -55,6 +61,9 @@ module Puma
55
61
  logger.info "The S3 object #{bucket_name}/#{object_key} does not exist"
56
62
  0
57
63
  end
64
+ rescue StandardError => e
65
+ logger.warn "Error accessing the S3 object #{bucket_name}/#{object_key}. Error:#{e.message}"
66
+ 0
58
67
  end
59
68
  end
60
69
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Puma
4
4
  module Redeploy
5
- VERSION = '0.3.0'
5
+ VERSION = '0.3.2'
6
6
  end
7
7
  end
@@ -12,6 +12,8 @@ module Puma
12
12
  end
13
13
 
14
14
  def deploy(source:)
15
+ return unless source
16
+
15
17
  Dir.chdir(@target) do
16
18
  stdout, stderr, status = Open3.capture3("unzip -o -K #{source}")
17
19
  @logger.info "stdout: #{stdout}"
@@ -32,13 +32,5 @@ Gem::Specification.new do |spec|
32
32
 
33
33
  spec.add_runtime_dependency 'aws-sdk-s3', '~> 1.120.0'
34
34
 
35
- spec.add_development_dependency 'rake', '~> 13.0.6'
36
- spec.add_development_dependency 'rspec', '~> 3.12.0'
37
- spec.add_development_dependency 'rubocop', '~> 1.43'
38
- spec.add_development_dependency 'rubocop-performance', '~> 1.15'
39
- spec.add_development_dependency 'rubocop-rake', '~> 0.6.0'
40
- spec.add_development_dependency 'rubocop-rspec', '~> 2.17'
41
- spec.add_development_dependency 'rubocop-thread_safety', '~> 0.4.4'
42
- spec.add_development_dependency 'timecop', '~> 0.9.6'
43
35
  spec.metadata['rubygems_mfa_required'] = 'true'
44
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puma-redeploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - tbeauvais
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-06 00:00:00.000000000 Z
11
+ date: 2023-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
@@ -24,118 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.120.0
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 13.0.6
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 13.0.6
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 3.12.0
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 3.12.0
55
- - !ruby/object:Gem::Dependency
56
- name: rubocop
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.43'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.43'
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop-performance
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.15'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.15'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop-rake
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 0.6.0
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 0.6.0
97
- - !ruby/object:Gem::Dependency
98
- name: rubocop-rspec
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '2.17'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '2.17'
111
- - !ruby/object:Gem::Dependency
112
- name: rubocop-thread_safety
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: 0.4.4
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: 0.4.4
125
- - !ruby/object:Gem::Dependency
126
- name: timecop
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: 0.9.6
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: 0.9.6
139
27
  description: Puma plugin to redeploy and reload app from a remote artifact. This will
140
28
  detect app changes, once detected a new artifact will be pulled and the app will
141
29
  be reloaded.