capistrano-ops 0.2.9 → 0.2.11

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: d06d07accde331b2e72dc623a092ce83cf4a33760dfaee3526f53ff54e0d31d6
4
- data.tar.gz: 333db2173d26102ddab05e8f2f942ad3669be5f4a463814bdf58a68e87e5ff07
3
+ metadata.gz: 2744c35793b74ff96ed5933892458ed3bbb86d33b93b4a9aab119996ab099048
4
+ data.tar.gz: 8245cc91a46097474588d94f4b935dc0f2c83090bf1818c7da4e6f37662bfaa0
5
5
  SHA512:
6
- metadata.gz: 0465ef4d67b766208461c410ba61282bb09c67902b0c1c6e53f88df9073b89c30f79fbd48954839b758ec32117abf51dfbc3c39adbf841411aecc998024aecff
7
- data.tar.gz: 643a104e7f6433399cac617513bfb82326c04717f2a0e623503e9941afa3b6eabd3c582a7081c335be05fcd7a89d1c32ca52629e7ae153721822b48960f9a8be
6
+ metadata.gz: ddc408fdde37cbc926b36ce1fd3dce989a2aa6c4a73e61a700af581c02b3432274b49837784d182fa1f07ea48cb1ca253e8c6e9647d5aadbe6313d8c319bb57f
7
+ data.tar.gz: 14c1223afe87285ced3ce3790ef73b3b515a2912dd62cfd15da8e08ea2bebee3945c0773ba2af423bfc6753756a3dbd3f7d22acebcdf3de5117c6051c0934615
data/README.md CHANGED
@@ -5,35 +5,43 @@ The capistrano-ops gem is a valuable library, tailor-made for Rails DevOps profe
5
5
  ## Main Features:
6
6
 
7
7
  🗃️ **Database and Storage Backups:**
8
- - Create, pull, and manage backups of your Postgres database and server storage.
9
- - Delegation of old backup removal for both Postgres database and server storage.
8
+
9
+ - Create, pull, and manage backups of your Postgres database and server storage.
10
+ - Delegation of old backup removal for both Postgres database and server storage.
10
11
 
11
12
  🛠️ **Configuration Management:**
12
- - Compare application.yml files between local and server environments using figaro_yml:compare.
13
- - Fetch server environment variables set via Figaro with figaro_yml:get.
13
+
14
+ - Compare application.yml files between local and server environments using figaro_yml:compare.
15
+ - Fetch server environment variables set via Figaro with figaro_yml:get.
14
16
 
15
17
  📜 **Logging and Task Management:**
16
- - Real-time viewing of Rails server logs.
17
- - Showcase the server app's crontab generated with the 'whenever' gem.
18
- - Ability to invoke server-specific rake tasks.
18
+
19
+ - Real-time viewing of Rails server logs.
20
+ - Showcase the server app's crontab generated with the 'whenever' gem.
21
+ - Ability to invoke server-specific rake tasks.
19
22
 
20
23
  🔔 **Notification Integrations:**
21
- - Set up notifications through Slack or generic Webhooks.
22
- - Customize notification levels (info/error).
24
+
25
+ - Set up notifications through Slack or generic Webhooks.
26
+ - Customize notification levels (info/error).
23
27
 
24
28
  ⚙️ **Backup Settings Customization:**
25
- - Define the number of backups retained, both locally and externally.
26
- - Toggle backup tasks and external backups.
27
- - S3 integration for backup storage, including customization of bucket, region, and endpoint details.
29
+
30
+ - Define the number of backups retained, both locally and externally.
31
+ - Toggle backup tasks and external backups.
32
+ - S3 integration for backup storage, including customization of bucket, region, and endpoint details.
28
33
 
29
34
  📅 **Schedule Tasks:**
30
- - Couple with the 'whenever' gem to schedule daily backup creation and old backup removal.
35
+
36
+ - Couple with the 'whenever' gem to schedule daily backup creation and old backup removal.
31
37
 
32
38
  🔗 **Slack & Webhook Integrations:**
33
- - Integrate seamlessly with Slack or use webhooks for notifications, alerting you on essential operations or any potential issues.
39
+
40
+ - Integrate seamlessly with Slack or use webhooks for notifications, alerting you on essential operations or any potential issues.
34
41
 
35
42
  ☁️ **Backup Providers:**
36
- - S3 and other S3-compatible services are supported to ensure your data remains secure and accessible.
43
+
44
+ - S3 and other S3-compatible services are supported to ensure your data remains secure and accessible.
37
45
 
38
46
  ## Requirements
39
47
 
@@ -116,6 +124,7 @@ production:
116
124
  | NUMBER_OF_EXTERNAL_BACKUPS | number of backups to keep externally (default: nil) | `number` |
117
125
  | BACKUPS_ENABLED | enable/disable backup task (default: Rails.env == 'production') | `boolean` |
118
126
  | EXTERNAL_BACKUP_ENABLED | enable/disable external backup (default: false) (only if 'BACKUPS_ENABLED', needs additional setup) | `boolean` |
127
+ | KEEP_LOCAL_STORAGE_BACKUPS | keep local storage backups (default: Rails.env == 'production') | `boolean` |
119
128
  | DEFAULT_URL | notification message title (default: "#{database} Backup") | `string` |
120
129
  | NOTIFICATION_TYPE | for notification (default: nil) | `string` (`webhook`/`slack`) |
121
130
  | NOTIFICATION_LEVEL | for notification (default: nil) | `string` (`info`/`error`) |
@@ -5,6 +5,8 @@ namespace :storage do
5
5
  backup_path = Rails.root.join(Rails.env.development? ? 'tmp/backups' : '../../shared/backups').to_s
6
6
  backups_enabled = Rails.env.production? || ENV['BACKUPS_ENABLED'] == 'true'
7
7
  external_backup = Rails.env.production? || ENV['EXTERNAL_BACKUP_ENABLED'] == 'true'
8
+ local_backup = Rails.env.production?
9
+ local_backup = ENV['KEEP_LOCAL_STORAGE_BACKUPS'] == 'true' if ENV['KEEP_LOCAL_STORAGE_BACKUPS'].present?
8
10
 
9
11
  @env_local_no = ENV['NUMBER_OF_LOCAL_BACKUPS'].present? ? ENV['NUMBER_OF_LOCAL_BACKUPS'] : nil
10
12
  @env_external_no = ENV['NUMBER_OF_EXTERNAL_BACKUPS'].present? ? ENV['NUMBER_OF_EXTERNAL_BACKUPS'] : nil
@@ -30,12 +32,12 @@ namespace :storage do
30
32
  commandlist = [
31
33
  "cd #{backup_path} && ls -lt ",
32
34
  "grep -E -i #{bash_regex} ",
33
- "tail -n +#{@total_local_backups_no + 1} ",
35
+ "tail -n +#{local_backup ? (@total_local_backups_no + 1) : 0} ",
34
36
  "awk '{print $9}' ",
35
37
  'xargs rm -rf'
36
38
  ]
37
39
 
38
- result = system(commandlist.join(' | ')) if @total_local_backups_no.positive?
40
+ result = system(commandlist.join(' | ')) if @total_local_backups_no.positive? && local_backup || !local_backup && external_backup
39
41
  puts 'remove_old_backups: local cleanup finished' if result
40
42
 
41
43
  if ENV['BACKUP_PROVIDER'].present? && external_backup
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Capistrano
4
4
  module Ops
5
- VERSION = '0.2.9'
5
+ VERSION = '0.2.11'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-ops
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.9
4
+ version: 0.2.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Crusius
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-15 00:00:00.000000000 Z
11
+ date: 2024-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3