capistrano-ash 1.2.4 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +7 -0
- data/VERSION +1 -1
- data/capistrano-ash.gemspec +3 -3
- data/lib/ash/base.rb +107 -0
- data/lib/ash/drupal.rb +2 -1
- data/lib/ash/magento.rb +1 -0
- data/lib/ash/wordpress.rb +1 -0
- data/lib/ash/zend_doctrine.rb +1 -0
- metadata +2 -2
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
== 1.3.0
|
2
|
+
* Version bump! - Adds tasks for compiling Sass/compass stylesheets and make it part of the deployment task chain. Although it's part of the task chain, it will only be ran if the `:compass_watched_dirs` is defined
|
3
|
+
|
4
|
+
== 1.2.4
|
5
|
+
* FIXED: Issue #30 - change ownership of directories/files in `deploy:cleanup` to avoid permission denied errors
|
6
|
+
* FIXED: Issue #29 - Remove copying of .git files to live site
|
7
|
+
|
1
8
|
== 1.2.3
|
2
9
|
* FIXED: Issue #27 - Wordpress symlinking uploads and cache directories to the previous release instead of the newest release
|
3
10
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.3.0
|
data/capistrano-ash.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "capistrano-ash"
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["August Ash"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2013-02-15"
|
13
13
|
s.description = "August Ash recipes for Capistrano"
|
14
14
|
s.email = "code@augustash.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
|
|
34
34
|
]
|
35
35
|
s.homepage = "https://github.com/augustash/capistrano-ash"
|
36
36
|
s.require_paths = ["lib"]
|
37
|
-
s.rubygems_version = "1.8.
|
37
|
+
s.rubygems_version = "1.8.24"
|
38
38
|
s.summary = "Useful task libraries for August Ash recipes for Capistrano"
|
39
39
|
|
40
40
|
if s.respond_to? :specification_version then
|
data/lib/ash/base.rb
CHANGED
@@ -85,6 +85,9 @@ configuration.load do
|
|
85
85
|
set :db_regex_hash, {
|
86
86
|
}
|
87
87
|
|
88
|
+
|
89
|
+
|
90
|
+
|
88
91
|
# --------------------------------------------
|
89
92
|
# Overloaded tasks
|
90
93
|
# --------------------------------------------
|
@@ -427,6 +430,110 @@ configuration.load do
|
|
427
430
|
end
|
428
431
|
end
|
429
432
|
|
433
|
+
# --------------------------------------------
|
434
|
+
# Compass/Sass compiling
|
435
|
+
# --------------------------------------------
|
436
|
+
namespace :compass do
|
437
|
+
desc "Compile SASS stylesheets and upload to remote server"
|
438
|
+
task :default do
|
439
|
+
compile
|
440
|
+
upload_stylesheets
|
441
|
+
ash.fixperms
|
442
|
+
end
|
443
|
+
|
444
|
+
desc 'Uploads compiled stylesheets to their matching watched directories'
|
445
|
+
task :upload_stylesheets, :roles => :web, :except => { :no_release => true } do
|
446
|
+
watched_dirs = fetch(:compass_watched_dirs, nil)
|
447
|
+
stylesheets_dir_name = fetch(:stylesheets_dir_name, 'stylesheets')
|
448
|
+
|
449
|
+
# finds all the web servers that we should upload stylesheets to
|
450
|
+
servers = find_servers :roles => :web
|
451
|
+
|
452
|
+
if !watched_dirs.nil?
|
453
|
+
if watched_dirs.is_a? String
|
454
|
+
logger.debug "Uploading compiled stylesheets for #{watched_dirs}"
|
455
|
+
logger.debug "trying to upload stylesheets from ./#{watched_dirs}/#{stylesheets_dir_name} -> #{latest_release}/#{watched_dirs}/#{stylesheets_dir_name}"
|
456
|
+
|
457
|
+
servers.each do |web_server|
|
458
|
+
upload_command = "scp -r ./#{watched_dirs}/#{stylesheets_dir_name}/*.css #{user}@#{web_server}:#{latest_release}/#{watched_dirs}/#{stylesheets_dir_name}/"
|
459
|
+
|
460
|
+
logger.info "running SCP command:"
|
461
|
+
logger.debug upload_command
|
462
|
+
system(upload_command)
|
463
|
+
end
|
464
|
+
elsif watched_dirs.is_a? Array
|
465
|
+
logger.debug "Uploading compiled stylesheets for #{watched_dirs.join(', ')}"
|
466
|
+
watched_dirs.each do |dir|
|
467
|
+
logger.debug "trying to upload stylesheets from ./#{dir}/#{stylesheets_dir_name}/ -> #{latest_release}/#{dir}/#{stylesheets_dir_name}/"
|
468
|
+
|
469
|
+
servers.each do |web_server|
|
470
|
+
upload_command = "scp -r ./#{dir}/#{stylesheets_dir_name}/*.css #{user}@#{web_server}:#{latest_release}/#{dir}/#{stylesheets_dir_name}/"
|
471
|
+
|
472
|
+
logger.info "running SCP command:"
|
473
|
+
logger.debug upload_command
|
474
|
+
system(upload_command)
|
475
|
+
end
|
476
|
+
end
|
477
|
+
else
|
478
|
+
logger.debug "Unable to upload compiled stylesheets because :compass_watched_dirs was neither a String nor an Array"
|
479
|
+
end
|
480
|
+
else
|
481
|
+
logger.info "Skipping uploading of compiled stylesheets `compass:upload` because `:compass_watched_dirs` wasn't set"
|
482
|
+
end
|
483
|
+
end
|
484
|
+
|
485
|
+
desc 'Compile minified version of CSS assets using Compass gem'
|
486
|
+
task :compile, :roles => :web, :except => { :no_release => true } do
|
487
|
+
watched_dirs = fetch(:compass_watched_dirs, nil)
|
488
|
+
|
489
|
+
if !watched_dirs.nil?
|
490
|
+
compass_bin_local = find_compass_bin_path
|
491
|
+
compass_bin = fetch(:compass_bin, compass_bin_local)
|
492
|
+
compass_env = fetch(:compass_env, "production")
|
493
|
+
compass_output = fetch(:compass_output, 'compressed') # nested, expanded, compact, compressed
|
494
|
+
|
495
|
+
if !compass_bin.nil?
|
496
|
+
if watched_dirs.is_a? String
|
497
|
+
logger.debug "Compiling SASS for #{watched_dirs}"
|
498
|
+
system "#{compass_bin} compile --output-style #{compass_output} --environment #{compass_env} ./#{watched_dirs}"
|
499
|
+
elsif watched_dirs.is_a? Array
|
500
|
+
logger.debug "Compiling SASS for #{watched_dirs.join(', ')}"
|
501
|
+
watched_dirs.each do |dir|
|
502
|
+
system "#{compass_bin} compile --output-style #{compass_output} --environment #{compass_env} ./#{dir}"
|
503
|
+
end
|
504
|
+
else
|
505
|
+
logger.debug "Unable to compile SASS because :compass_watched_dirs was neither a String nor an Array"
|
506
|
+
end
|
507
|
+
else
|
508
|
+
logger.info "Skipping SASS compilation in `compass:compile` because unable to find the bin executable for the compass gem"
|
509
|
+
end
|
510
|
+
else
|
511
|
+
logger.info "Skipping compass Sass compiliation"
|
512
|
+
end
|
513
|
+
end
|
514
|
+
|
515
|
+
desc "Finds the bin executable path for the compass gem"
|
516
|
+
task :find_compass_bin_path, :except => { :no_release => true } do
|
517
|
+
begin
|
518
|
+
spec = Gem::Specification.find_by_name("compass")
|
519
|
+
gem_root = spec.gem_dir
|
520
|
+
gem_bin = gem_root + "/bin/compass"
|
521
|
+
rescue Gem::LoadError => e
|
522
|
+
logger.debug "Unable to find the gem 'compass'! Check to see if it's installed: `gem list -d compass` or install: `gem install compass`"
|
523
|
+
gem_bin = nil
|
524
|
+
rescue Exception => e
|
525
|
+
logger.debug "Unable to find the compass executable bin path because of this error: #{e.message}"
|
526
|
+
gem_bin = nil
|
527
|
+
end
|
528
|
+
|
529
|
+
logger.debug "Path to compass executable: #{gem_bin.inspect}"
|
530
|
+
|
531
|
+
# return the path the compass executable
|
532
|
+
gem_bin
|
533
|
+
end
|
534
|
+
end
|
535
|
+
|
536
|
+
|
430
537
|
# --------------------------------------------
|
431
538
|
# Remote File/Directory test tasks
|
432
539
|
# --------------------------------------------
|
data/lib/ash/drupal.rb
CHANGED
@@ -39,6 +39,7 @@ configuration.load do
|
|
39
39
|
after "deploy", "drupal:symlink"
|
40
40
|
after "drupal:symlink","drupal:protect"
|
41
41
|
after "drupal:symlink", "drupal:clearcache"
|
42
|
+
before "drupal:clearcache", "compass"
|
42
43
|
after "deploy", "deploy:cleanup"
|
43
44
|
|
44
45
|
# --------------------------------------------
|
@@ -282,4 +283,4 @@ configuration.load do
|
|
282
283
|
end
|
283
284
|
end
|
284
285
|
end
|
285
|
-
end
|
286
|
+
end
|
data/lib/ash/magento.rb
CHANGED
data/lib/ash/wordpress.rb
CHANGED
@@ -23,6 +23,7 @@ configuration.load do
|
|
23
23
|
# before/after callbacks not firing for 'deploy:symlink'
|
24
24
|
# or 'deploy:create_symlink'
|
25
25
|
after "deploy", "wordpress:symlink"
|
26
|
+
after "wordpress:symlink", "compass"
|
26
27
|
after "wordpress:symlink", "ash:fixperms"
|
27
28
|
after "ash:fixperms", "wordpress:protect"
|
28
29
|
|
data/lib/ash/zend_doctrine.rb
CHANGED
@@ -19,6 +19,7 @@ configuration.load do
|
|
19
19
|
# before/after callbacks not firing for 'deploy:symlink'
|
20
20
|
# or 'deploy:create_symlink'
|
21
21
|
after "deploy", "zend:symlink"
|
22
|
+
after "zend:symlink", "compass"
|
22
23
|
after "deploy", "deploy:cleanup"
|
23
24
|
|
24
25
|
# --------------------------------------------
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-ash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-15 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: August Ash recipes for Capistrano
|
15
15
|
email: code@augustash.com
|