capistrano-django 3.5.5 → 4.0.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.
Files changed (3) hide show
  1. checksums.yaml +5 -5
  2. data/lib/capistrano/django.rb +50 -43
  3. metadata +3 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 89fc9f826c07b7aa1411e29a26472eb757631566
4
- data.tar.gz: 705084c3c6da8720c85609af1d3901f9c60e3586
2
+ SHA256:
3
+ metadata.gz: 6291a323fd01c4311d8b4aec554254e6d7f433199713aab639038fbf0e3f4d8d
4
+ data.tar.gz: 9b43d25d7ad8395c6b0d7bbd8414916e87f1d2959b8f7e7d349cbf7327f758cf
5
5
  SHA512:
6
- metadata.gz: 4aa928f2d47eab89046cc137899bb9bcac08de6fb87abd214e07197a37d75a242143e4380b2f57f27a9104a9787fc4192c0ee2e955098848315fa2d0ecab2958
7
- data.tar.gz: e1287696540ad3f9d7adb03e31511430c02df1b2971ad4ea659ef5837e0b1d13c0c1fd8f1b0a6536d6ae0c2d8b1ff3b9a139a1c162a67e5fb12922394e1fdd28
6
+ metadata.gz: 496029f01092040ce67640d2e35abe2097ae74fa1f7ebfccadd94f21a2c0b97fb1eac22ba41330d69dab239043afceb19a117daf57ac0d57976c45c090183dab
7
+ data.tar.gz: defc670f45ee9f054224718a829475bc0cad5c57dbe7215f8f3f15827a78dc1ed54adc0de822ada6d238c43a04869c88f8c9c2ed263de5281322846c62005fd1
@@ -1,5 +1,4 @@
1
1
  after 'deploy:updating', 'python:create_virtualenv'
2
- after 'python:create_virtualenv', 'python:post_virtualenv'
3
2
 
4
3
  namespace :deploy do
5
4
 
@@ -61,6 +60,8 @@ namespace :python do
61
60
 
62
61
  end
63
62
 
63
+ after 'python:create_virtualenv', 'python:post_virtualenv'
64
+
64
65
  namespace :flask do
65
66
 
66
67
  task :setup do
@@ -150,7 +151,7 @@ namespace :django do
150
151
  task :collectstatic do
151
152
  if fetch(:create_s3_bucket)
152
153
  invoke 's3:create_bucket'
153
- on roles(:web) do
154
+ on roles(:weblead) do
154
155
  django("collectstatic", "-i *.coffee -i *.less -i node_modules/* -i bower_components/* --noinput --clear")
155
156
  end
156
157
  else
@@ -179,9 +180,9 @@ namespace :django do
179
180
  desc "Run django migrations"
180
181
  task :migrate do
181
182
  if fetch(:multidb)
182
- django("sync_all", '--noinput', run_on=:web)
183
+ django("sync_all", '--noinput', run_on=:jobs)
183
184
  else
184
- django("migrate", "--noinput", run_on=:web)
185
+ django("migrate", "--noinput", run_on=:jobs)
185
186
  end
186
187
  end
187
188
  end
@@ -220,26 +221,30 @@ namespace :s3 do
220
221
 
221
222
  desc 'Clean up old s3 buckets'
222
223
  task :cleanup do
223
- if fetch(:create_s3_bucket)
224
+ if fetch(:create_s3_bucket) and fetch(:delete_old_s3_buckets, true)
225
+ raw_directories = []
224
226
  on roles(:web) do
225
227
  releases = capture(:ls, '-xtr', releases_path).split
226
228
  if releases.count >= fetch(:keep_releases)
227
- directories = releases.last(fetch(:keep_releases))
228
- require 'fog'
229
- storage = Fog::Storage.new({
230
- aws_access_key_id: fetch(:aws_access_key),
231
- aws_secret_access_key: fetch(:aws_secret_key),
232
- provider: "AWS"
233
- })
234
- buckets = storage.directories.all.select { |b| b.key.start_with? fetch(:s3_bucket_prefix) }
235
- buckets = buckets.select { |b| not directories.include?(b.key.split('-').last) }
236
- buckets.each do |old_bucket|
237
- files = old_bucket.files.map{ |file| file.key }
238
- storage.delete_multiple_objects(old_bucket.key, files) unless files.empty?
239
- storage.delete_bucket(old_bucket.key)
240
- end
229
+ raw_directories.concat releases.last(fetch(:keep_releases))
230
+ else
231
+ raw_directories.concat releases
241
232
  end
242
233
  end
234
+ directories = raw_directories.uniq
235
+ require 'fog'
236
+ storage = Fog::Storage.new({
237
+ aws_access_key_id: fetch(:aws_access_key),
238
+ aws_secret_access_key: fetch(:aws_secret_key),
239
+ provider: "AWS"
240
+ })
241
+ buckets = storage.directories.all.select { |b| b.key.start_with? fetch(:s3_bucket_prefix) }
242
+ buckets = buckets.select { |b| not directories.include?(b.key.split('-').last) }
243
+ buckets.each do |old_bucket|
244
+ files = old_bucket.files.map{ |file| file.key }
245
+ storage.delete_multiple_objects(old_bucket.key, files) unless files.empty?
246
+ storage.delete_bucket(old_bucket.key)
247
+ end
243
248
  end
244
249
  end
245
250
 
@@ -258,30 +263,32 @@ namespace :s3 do
258
263
  execute %Q|echo 'STATICFILES_STORAGE = "storages.backends.s3boto.S3BotoStorage"' >> #{settings_path}/#{fetch(:django_settings)}.py|
259
264
  end
260
265
 
261
- require 'fog'
262
- storage = Fog::Storage.new({
263
- aws_access_key_id: fetch(:aws_access_key),
264
- aws_secret_access_key: fetch(:aws_secret_key),
265
- provider: "AWS"
266
- })
267
- storage.put_bucket(bucket_name)
268
- storage.put_bucket_policy(bucket_name, {
269
- 'Statement' => [{
270
- 'Sid' => 'AddPerm',
271
- 'Effect' => 'Allow',
272
- 'Principal' => '*',
273
- 'Action' => ['s3:GetObject'],
274
- 'Resource' => ["arn:aws:s3:::#{bucket_name}/*"]
275
- }]
276
- })
277
- storage.put_bucket_cors(bucket_name, {
278
- "CORSConfiguration" => [{
279
- "AllowedOrigin" => ["*"],
280
- "AllowedHeader" => ["*"],
281
- "AllowedMethod" => ["GET"],
282
- "MaxAgeSeconds" => 3000
283
- }]
284
- })
266
+ on roles(:weblead) do
267
+ require 'fog'
268
+ storage = Fog::Storage.new({
269
+ aws_access_key_id: fetch(:aws_access_key),
270
+ aws_secret_access_key: fetch(:aws_secret_key),
271
+ provider: "AWS"
272
+ })
273
+ storage.put_bucket(bucket_name)
274
+ storage.put_bucket_policy(bucket_name, {
275
+ 'Statement' => [{
276
+ 'Sid' => 'AddPerm',
277
+ 'Effect' => 'Allow',
278
+ 'Principal' => '*',
279
+ 'Action' => ['s3:GetObject'],
280
+ 'Resource' => ["arn:aws:s3:::#{bucket_name}/*"]
281
+ }]
282
+ })
283
+ storage.put_bucket_cors(bucket_name, {
284
+ "CORSConfiguration" => [{
285
+ "AllowedOrigin" => ["*"],
286
+ "AllowedHeader" => ["*"],
287
+ "AllowedMethod" => ["GET"],
288
+ "MaxAgeSeconds" => 3000
289
+ }]
290
+ })
291
+ end
285
292
 
286
293
  end
287
294
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-django
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.5
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew J. Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-26 00:00:00.000000000 Z
11
+ date: 2021-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -50,8 +50,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
50
50
  - !ruby/object:Gem::Version
51
51
  version: '0'
52
52
  requirements: []
53
- rubyforge_project:
54
- rubygems_version: 2.6.12
53
+ rubygems_version: 3.0.3
55
54
  signing_key:
56
55
  specification_version: 4
57
56
  summary: capistrano-django - Welcome to easy deployment with Ruby over SSH for Django