capistrano-didi 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.txt +29 -0
- data/Gemfile +2 -3
- data/Gemfile.lock +11 -10
- data/README.rdoc +11 -27
- data/Rakefile +1 -2
- data/VERSION +1 -1
- data/bin/didify +14 -14
- data/capistrano-didi.gemspec +12 -17
- data/lib/didi/recipes/didi.rb +46 -27
- metadata +28 -59
data/CHANGELOG.txt
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
## 0.4.1 22 May 2012
|
2
|
+
|
3
|
+
* fix compatibility with capistrano 2.12.0
|
4
|
+
* you need to uninstall capistrano-ext (included in 2.12.0)
|
5
|
+
* cleanup sample stage config in didify
|
6
|
+
* fixed cleanup and dbbackup tasks in multisite config
|
7
|
+
* minor code and docs cleanup
|
8
|
+
|
9
|
+
## 0.4.0 / May 3 2012
|
10
|
+
|
11
|
+
* added multisite support (see wiki)
|
12
|
+
* added manage:pull_dump
|
13
|
+
* extra config options (no_disable:true, local_database:nil, backup_database:true)
|
14
|
+
|
15
|
+
## 0.3.2 / Mar 23 2012
|
16
|
+
|
17
|
+
* added config option: enable_robots, default to false
|
18
|
+
* added config option: drush_path, on remote server
|
19
|
+
* added default php settings in settings.php file
|
20
|
+
* put site in maintenance mode during deploy
|
21
|
+
|
22
|
+
## 0.3.1 / Jan 4 2012
|
23
|
+
|
24
|
+
* added tests:unit_all + bugfixes
|
25
|
+
|
26
|
+
## 0.3.0 / Nov 24 2011
|
27
|
+
|
28
|
+
* fix symlinks on rollback
|
29
|
+
* added manage:dbdump_previous task
|
data/Gemfile
CHANGED
@@ -7,10 +7,9 @@ source "http://rubygems.org"
|
|
7
7
|
# Include everything needed to run rake, tests, features, etc.
|
8
8
|
group :development do
|
9
9
|
gem "railsless-deploy", ">= 1.0.2"
|
10
|
-
gem "capistrano
|
11
|
-
gem "capistrano", ">= 2.9.0"
|
10
|
+
gem "capistrano", ">= 2.12.0"
|
12
11
|
gem "shoulda", ">= 0"
|
13
|
-
gem "bundler", "~> 1.
|
12
|
+
gem "bundler", "~> 1.1.3"
|
14
13
|
gem "jeweler", "~> 1.6.4"
|
15
14
|
gem "rcov", ">= 0"
|
16
15
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,16 +1,14 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
capistrano (2.
|
4
|
+
capistrano (2.12.0)
|
5
5
|
highline
|
6
6
|
net-scp (>= 1.0.0)
|
7
7
|
net-sftp (>= 2.0.0)
|
8
8
|
net-ssh (>= 2.0.14)
|
9
9
|
net-ssh-gateway (>= 1.1.0)
|
10
|
-
capistrano-ext (1.2.1)
|
11
|
-
capistrano (>= 1.0.0)
|
12
10
|
git (1.2.5)
|
13
|
-
highline (1.6.
|
11
|
+
highline (1.6.12)
|
14
12
|
jeweler (1.6.4)
|
15
13
|
bundler (~> 1.0)
|
16
14
|
git (>= 1.2.5)
|
@@ -19,21 +17,24 @@ GEM
|
|
19
17
|
net-ssh (>= 1.99.1)
|
20
18
|
net-sftp (2.0.5)
|
21
19
|
net-ssh (>= 2.0.9)
|
22
|
-
net-ssh (2.
|
20
|
+
net-ssh (2.3.0)
|
23
21
|
net-ssh-gateway (1.1.0)
|
24
22
|
net-ssh (>= 1.99.1)
|
25
23
|
railsless-deploy (1.0.2)
|
26
24
|
rake (0.9.2.2)
|
27
|
-
rcov (0.
|
28
|
-
shoulda (
|
25
|
+
rcov (1.0.0)
|
26
|
+
shoulda (3.0.1)
|
27
|
+
shoulda-context (~> 1.0.0)
|
28
|
+
shoulda-matchers (~> 1.0.0)
|
29
|
+
shoulda-context (1.0.0)
|
30
|
+
shoulda-matchers (1.0.0)
|
29
31
|
|
30
32
|
PLATFORMS
|
31
33
|
ruby
|
32
34
|
|
33
35
|
DEPENDENCIES
|
34
|
-
bundler (~> 1.
|
35
|
-
capistrano (>= 2.
|
36
|
-
capistrano-ext (>= 1.2.1)
|
36
|
+
bundler (~> 1.1.3)
|
37
|
+
capistrano (>= 2.12.0)
|
37
38
|
jeweler (~> 1.6.4)
|
38
39
|
railsless-deploy (>= 1.0.2)
|
39
40
|
rcov
|
data/README.rdoc
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
= didi
|
2
2
|
|
3
|
-
|
3
|
+
Didi is an collection of capistrano recipes that enable automated deployment and continuous integration of drupal websites. Once you have configured different hosting environments you can use the "didi" command to interact with them.
|
4
|
+
|
5
|
+
== What can didi do you for?
|
6
|
+
|
7
|
+
* update a hosting environment of your choice with the latest code
|
8
|
+
* perform drush commands for maintenance
|
9
|
+
* revert features via drush after code updates
|
10
|
+
* restore a remote database to your local development machine
|
11
|
+
* setup a drupal website from scratch on a new webserver
|
12
|
+
* run simpletests with Jenkins
|
4
13
|
|
5
14
|
== Contributing to didi
|
6
15
|
|
@@ -14,29 +23,4 @@ Description goes here.
|
|
14
23
|
|
15
24
|
== Copyright
|
16
25
|
|
17
|
-
Copyright (c)
|
18
|
-
further details.
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
= TODO
|
23
|
-
|
24
|
-
* set :site, "apache vhost here" => not clear what this is
|
25
|
-
* set :sitesubdir, "default" => use :site here ?
|
26
|
-
* create default + multisite with :site
|
27
|
-
* sensible default: adminpass => default is admin admin
|
28
|
-
* server app, web, db => hide this db depends on settings.php so specified else where
|
29
|
-
* set :scm, "subversion" => document options => with svn url needs to be location of cap file
|
30
|
-
* set :baseline => should not be mandatory
|
31
|
-
* set :sitemail => should not be mandatory
|
32
|
-
* stages => reserverd names (eg. test)
|
33
|
-
* set :deploy_to => needs to be absolute (+what with trailing slash?)
|
34
|
-
* requirements: drush
|
35
|
-
* deploy:check => uitbreiden met control of repostioryu (svn / git) bereikbaar is) see "depend"
|
36
|
-
* deploy:check => ook mysql connectie controleren
|
37
|
-
* svn: problem with acceptance voor certificate
|
38
|
-
* scm_username, scm_password
|
39
|
-
* drush:si => ook feature revert all doen
|
40
|
-
* apache vhost opgeven en gesymlinked word
|
41
|
-
* railslessdeploy: run_locally
|
42
|
-
* robots.txt disallow all
|
26
|
+
Copyright (c) Koen Van Winckel. See LICENSE.txt for further details.
|
data/Rakefile
CHANGED
@@ -21,9 +21,8 @@ Jeweler::Tasks.new do |gem|
|
|
21
21
|
gem.description = %Q{didi is a collection of recipes for capistrano that allow drupal to be deployed, tested and used in a CI environment}
|
22
22
|
gem.email = "koenvw@gmail.com"
|
23
23
|
gem.authors = ["Koen Van Winckel"]
|
24
|
-
gem.add_dependency "capistrano", ">= 2.
|
24
|
+
gem.add_dependency "capistrano", ">= 2.12.0"
|
25
25
|
gem.add_dependency "railsless-deploy", ">= 1.0.2"
|
26
|
-
gem.add_dependency "capistrano-ext", ">= 1.2.1"
|
27
26
|
gem.post_install_message = '=> "didify" and "didi" commands installed. Try them out!'
|
28
27
|
# dependencies defined in Gemfile
|
29
28
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.1
|
data/bin/didify
CHANGED
@@ -38,35 +38,35 @@ end
|
|
38
38
|
files = {
|
39
39
|
"Capfile" => unindent(<<-FILE),
|
40
40
|
require 'railsless-deploy' # gem install railsless-deploy
|
41
|
-
require 'capistrano/ext/multistage' # gem install capistrano-ext
|
42
41
|
require 'didi/recipes/didi.rb' # gem install capistrano-didi
|
43
42
|
load 'config/deploy'
|
43
|
+
require 'capistrano/ext/multistage' # gem install capistrano
|
44
44
|
FILE
|
45
45
|
|
46
46
|
"config/deploy.rb" => 'set :default_stage, "staging"
|
47
47
|
set :stages, %w(staging production)
|
48
|
-
set :application, "
|
49
|
-
set :repository, "
|
48
|
+
set :application, "your_application_name"
|
49
|
+
set :repository, "your_repository_location_here"
|
50
50
|
set :drupal_path, "drupal" # change this to your drupal folder
|
51
51
|
',
|
52
|
-
"config/deploy/staging.rb" => 'set :user, "
|
53
|
-
server "
|
52
|
+
"config/deploy/staging.rb" => 'set :user, "ssh_user_name"
|
53
|
+
server "server.example.com", :app, :web, :db, :primary => true
|
54
54
|
|
55
|
-
set :deploy_to, "
|
55
|
+
set :deploy_to, "the_path_on_the_remote_server"
|
56
56
|
set :branch, "master"
|
57
57
|
|
58
58
|
set :db_type, "mysql"
|
59
|
-
set :db_name, "
|
60
|
-
set :db_username, "
|
61
|
-
set :db_password, "
|
59
|
+
set :db_name, "database_name"
|
60
|
+
set :db_username, "database_user_name"
|
61
|
+
set :db_password, "database_password"
|
62
62
|
|
63
63
|
set :profile, "minimal"
|
64
|
-
set :
|
65
|
-
set :
|
66
|
-
set :
|
67
|
-
set :
|
64
|
+
set :domain, "default"
|
65
|
+
set :site, "apache_vhost"
|
66
|
+
set :sitemail, "drupal_site_email_address"
|
67
|
+
set :adminpass, "drupal_admin_pass"
|
68
68
|
|
69
|
-
set :baseline, "
|
69
|
+
set :baseline, "drupal_feature_to_activate_after_fresh_install"
|
70
70
|
'}
|
71
71
|
|
72
72
|
base = ARGV.shift
|
data/capistrano-didi.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "capistrano-didi"
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Koen Van Winckel"]
|
12
|
-
s.date = "2012-05-
|
12
|
+
s.date = "2012-05-22"
|
13
13
|
s.description = "didi is a collection of recipes for capistrano that allow drupal to be deployed, tested and used in a CI environment"
|
14
14
|
s.email = "koenvw@gmail.com"
|
15
15
|
s.executables = ["didify", "didi"]
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
]
|
20
20
|
s.files = [
|
21
21
|
".document",
|
22
|
+
"CHANGELOG.txt",
|
22
23
|
"Gemfile",
|
23
24
|
"Gemfile.lock",
|
24
25
|
"LICENSE.txt",
|
@@ -44,38 +45,32 @@ Gem::Specification.new do |s|
|
|
44
45
|
|
45
46
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
46
47
|
s.add_development_dependency(%q<railsless-deploy>, [">= 1.0.2"])
|
47
|
-
s.add_development_dependency(%q<capistrano
|
48
|
-
s.add_development_dependency(%q<capistrano>, [">= 2.9.0"])
|
48
|
+
s.add_development_dependency(%q<capistrano>, [">= 2.12.0"])
|
49
49
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
50
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.
|
50
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.1.3"])
|
51
51
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
52
52
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
53
|
-
s.add_runtime_dependency(%q<capistrano>, [">= 2.
|
53
|
+
s.add_runtime_dependency(%q<capistrano>, [">= 2.12.0"])
|
54
54
|
s.add_runtime_dependency(%q<railsless-deploy>, [">= 1.0.2"])
|
55
|
-
s.add_runtime_dependency(%q<capistrano-ext>, [">= 1.2.1"])
|
56
55
|
else
|
57
56
|
s.add_dependency(%q<railsless-deploy>, [">= 1.0.2"])
|
58
|
-
s.add_dependency(%q<capistrano
|
59
|
-
s.add_dependency(%q<capistrano>, [">= 2.9.0"])
|
57
|
+
s.add_dependency(%q<capistrano>, [">= 2.12.0"])
|
60
58
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
61
|
-
s.add_dependency(%q<bundler>, ["~> 1.
|
59
|
+
s.add_dependency(%q<bundler>, ["~> 1.1.3"])
|
62
60
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
63
61
|
s.add_dependency(%q<rcov>, [">= 0"])
|
64
|
-
s.add_dependency(%q<capistrano>, [">= 2.
|
62
|
+
s.add_dependency(%q<capistrano>, [">= 2.12.0"])
|
65
63
|
s.add_dependency(%q<railsless-deploy>, [">= 1.0.2"])
|
66
|
-
s.add_dependency(%q<capistrano-ext>, [">= 1.2.1"])
|
67
64
|
end
|
68
65
|
else
|
69
66
|
s.add_dependency(%q<railsless-deploy>, [">= 1.0.2"])
|
70
|
-
s.add_dependency(%q<capistrano
|
71
|
-
s.add_dependency(%q<capistrano>, [">= 2.9.0"])
|
67
|
+
s.add_dependency(%q<capistrano>, [">= 2.12.0"])
|
72
68
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
73
|
-
s.add_dependency(%q<bundler>, ["~> 1.
|
69
|
+
s.add_dependency(%q<bundler>, ["~> 1.1.3"])
|
74
70
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
75
71
|
s.add_dependency(%q<rcov>, [">= 0"])
|
76
|
-
s.add_dependency(%q<capistrano>, [">= 2.
|
72
|
+
s.add_dependency(%q<capistrano>, [">= 2.12.0"])
|
77
73
|
s.add_dependency(%q<railsless-deploy>, [">= 1.0.2"])
|
78
|
-
s.add_dependency(%q<capistrano-ext>, [">= 1.2.1"])
|
79
74
|
end
|
80
75
|
end
|
81
76
|
|
data/lib/didi/recipes/didi.rb
CHANGED
@@ -15,7 +15,6 @@ _cset(:profile) { abort "Please specify the Drupal install profile (:pro
|
|
15
15
|
_cset(:site) { abort "Please specify the Drupal site (:site)." }
|
16
16
|
_cset(:sitemail) { abort "Please specify the Drupal site mail (:sitemail)." }
|
17
17
|
_cset(:adminpass) { abort "Please specify the Drupal admin password (:adminpass)." }
|
18
|
-
_cset(:sitesubdir) { abort "Please specify the Drupal site subdir (:sitesubdir)." } # FIXME: files folder needs to be symlinked ??
|
19
18
|
_cset(:baseline) { abort "Please specify the Baseline feature (:baseline)." }
|
20
19
|
|
21
20
|
|
@@ -78,7 +77,7 @@ depend :remote, :command, "#{drush_path}drush"
|
|
78
77
|
namespace :deploy do
|
79
78
|
|
80
79
|
desc <<-DESC
|
81
|
-
Deploys your Drupal site. It supposes that the Setup task was already executed.
|
80
|
+
Deploys your Drupal site, runs drush:update. It supposes that the Setup task was already executed.
|
82
81
|
This overrides the default Capistrano Deploy task to handle database operations and backups,
|
83
82
|
all of them via Drush.
|
84
83
|
DESC
|
@@ -93,17 +92,16 @@ namespace :deploy do
|
|
93
92
|
task :cold do
|
94
93
|
transaction do
|
95
94
|
setup
|
96
|
-
|
97
|
-
symlink
|
95
|
+
update
|
98
96
|
end
|
99
97
|
end
|
100
98
|
after "deploy:cold", "drush:si"
|
101
99
|
|
102
100
|
desc "Deploys latest code and rebuild the database"
|
103
101
|
task :rebuild do
|
104
|
-
|
105
|
-
symlink
|
102
|
+
update
|
106
103
|
manage.dbdump_previous
|
104
|
+
cleanup
|
107
105
|
end
|
108
106
|
after "deploy:rebuild", "drush:si"
|
109
107
|
|
@@ -119,12 +117,12 @@ namespace :deploy do
|
|
119
117
|
|
120
118
|
run <<-CMD
|
121
119
|
mkdir -p #{dirs.join(' ')}
|
122
|
-
#{try_sudo} chown #{user}:#{srv_usr} #{shared_files.
|
123
|
-
#{try_sudo} chmod g+w #{shared_files.
|
120
|
+
#{try_sudo} chown #{user}:#{srv_usr} #{shared_files.join(' ')} &&
|
121
|
+
#{try_sudo} chmod g+w #{shared_files.join(' ')}
|
124
122
|
CMD
|
125
123
|
|
126
124
|
#create drupal config file
|
127
|
-
domain.
|
125
|
+
domain.each_with_index do |d, i|
|
128
126
|
configuration = drupal_settings(drupal_version, d)
|
129
127
|
put configuration, shared_settings[i]
|
130
128
|
end
|
@@ -133,8 +131,12 @@ namespace :deploy do
|
|
133
131
|
|
134
132
|
desc "[internal] Rebuild files and settings symlinks"
|
135
133
|
task :finalize_update, :except => { :no_release => true } do
|
134
|
+
# Specifies an on_rollback hook for the currently executing task. If this
|
135
|
+
# or any subsequent task then fails, and a transaction is active, this
|
136
|
+
# hook will be executed.
|
136
137
|
on_rollback do
|
137
138
|
if previous_release
|
139
|
+
#FIXME: won't work on mulitsite config
|
138
140
|
run "ln -nfs #{shared_files} #{previous_release_files} && ln -nfs #{shared_settings} #{previous_release_settings}"
|
139
141
|
else
|
140
142
|
logger.important "no previous release to rollback to, rollback of drupal shared data skipped."
|
@@ -143,7 +145,7 @@ namespace :deploy do
|
|
143
145
|
|
144
146
|
|
145
147
|
release_domain.each do |rd|
|
146
|
-
run "if [ ! -d #{rd} ]; then mkdir #{rd}; fi" # in case the default is not versioned
|
148
|
+
run "if [ ! -d #{rd} ]; then mkdir #{rd}; fi" # in case the default folder is not versioned
|
147
149
|
end
|
148
150
|
|
149
151
|
shared_files.each_with_index do |sf, i|
|
@@ -177,21 +179,29 @@ namespace :deploy do
|
|
177
179
|
logger.info "keeping #{count} of #{releases.length} deployed releases"
|
178
180
|
old_releases = (releases - releases.last(count))
|
179
181
|
directories = old_releases.map { |release| File.join(releases_path, release) }.join(" ")
|
180
|
-
databases = old_releases.map { |release|
|
181
|
-
|
182
|
+
databases = dbbackups_path.product(old_releases.map { |release| "#{release}.sql"} ).map { |p| File.join(p)}.join(" ") if backup_database
|
182
183
|
run "rm -rf #{directories} #{databases}"
|
183
184
|
end
|
184
185
|
end
|
185
186
|
|
186
187
|
namespace :rollback do
|
187
188
|
|
189
|
+
desc <<-DESC
|
190
|
+
go back to the previous release (code and database)
|
191
|
+
DESC
|
192
|
+
task :default do
|
193
|
+
revision
|
194
|
+
#db_rollback if domain.to_a.size == 1 # FIXME: not supported in multisite configuration, does not work
|
195
|
+
cleanup
|
196
|
+
end
|
197
|
+
|
188
198
|
desc <<-DESC
|
189
199
|
[internal] Removes the most recently deployed release.
|
190
200
|
This is called by the rollback sequence, and should rarely
|
191
201
|
(if ever) need to be called directly.
|
192
202
|
DESC
|
193
203
|
task :cleanup, :except => { :no_release => true } do
|
194
|
-
#
|
204
|
+
# FIXME: this doesn't cleanup dbbackups
|
195
205
|
run "if [ `readlink #{current_path}` != #{current_release} ]; then rm -rf #{current_release}; fi"
|
196
206
|
end
|
197
207
|
|
@@ -203,9 +213,13 @@ namespace :deploy do
|
|
203
213
|
run <<-CMD
|
204
214
|
rm #{current_path};
|
205
215
|
ln -s #{previous_release} #{current_path};
|
206
|
-
ln -nfs #{shared_files} #{previous_release_files};
|
207
|
-
ln -nfs #{shared_settings} #{previous_release_settings}
|
208
216
|
CMD
|
217
|
+
shared_files.each_with_index do |sf, i|
|
218
|
+
run <<-CMD
|
219
|
+
ln -nfs #{sf} #{previous_release_files[i]} &&
|
220
|
+
ln -nfs #{shared_settings[i]} #{previous_release_settings[i]}
|
221
|
+
CMD
|
222
|
+
end
|
209
223
|
else
|
210
224
|
abort "could not rollback the code because there is no prior release"
|
211
225
|
end
|
@@ -217,6 +231,7 @@ namespace :deploy do
|
|
217
231
|
database and import the backup. This task should NEVER be called standalone.
|
218
232
|
DESC
|
219
233
|
task :db_rollback, :except => { :no_release => true } do
|
234
|
+
#FIXME: does not work
|
220
235
|
if previous_release
|
221
236
|
logger.info "Dumping current database and importing previous one (If one is found)."
|
222
237
|
previous_db = File.join(dbbackups_path, "#{releases[-2]}.sql")
|
@@ -227,15 +242,17 @@ namespace :deploy do
|
|
227
242
|
end
|
228
243
|
end
|
229
244
|
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
245
|
+
end
|
246
|
+
|
247
|
+
namespace :web do
|
248
|
+
desc "Makes the application web-accessible again."
|
249
|
+
task :enable do
|
250
|
+
drush.ensite
|
251
|
+
end
|
252
|
+
desc "Present a maintenance page to visitors."
|
253
|
+
task :disable do
|
254
|
+
drush.dissite
|
237
255
|
end
|
238
|
-
|
239
256
|
end
|
240
257
|
|
241
258
|
end
|
@@ -275,13 +292,13 @@ namespace :drush do
|
|
275
292
|
end
|
276
293
|
cc
|
277
294
|
end
|
278
|
-
desc "[internal]
|
295
|
+
desc "[internal] Enable the simpletest feature"
|
279
296
|
task :enst do
|
280
297
|
run "cd #{current_path}/#{drupal_path} && #{drush_path}drush pm-enable simpletest -y"
|
281
298
|
cc
|
282
299
|
end
|
283
300
|
|
284
|
-
desc "Disable maintenance mode, enabling the site"
|
301
|
+
desc "[internal] Disable maintenance mode, enabling the site"
|
285
302
|
task :ensite do
|
286
303
|
if drupal_version == 6
|
287
304
|
run "cd #{current_path}/#{drupal_path} && #{drush_path}drush vset --always-set site_offline 0"
|
@@ -292,7 +309,7 @@ namespace :drush do
|
|
292
309
|
end
|
293
310
|
end
|
294
311
|
|
295
|
-
desc "Enable maintenance mode, disabling the site"
|
312
|
+
desc "[internal] Enable maintenance mode, disabling the site"
|
296
313
|
task :dissite do
|
297
314
|
if drupal_version == 6
|
298
315
|
run "cd #{current_path}/#{drupal_path} && #{drush_path}drush vset --always-set site_offline 1"
|
@@ -399,7 +416,9 @@ namespace :manage do
|
|
399
416
|
task :dbdump_previous do
|
400
417
|
#Backup the previous release's database
|
401
418
|
if previous_release && backup_database
|
402
|
-
|
419
|
+
domain.each_with_index do |d,i|
|
420
|
+
run "cd #{current_path}/#{drupal_path} && #{drush_path}drush" + (d == 'default' ? '' : " -l #{d}") + " sql-dump > #{ File.join(dbbackups_path[i], "#{releases[-2]}.sql") }"
|
421
|
+
end
|
403
422
|
end
|
404
423
|
end
|
405
424
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-didi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 1
|
10
|
+
version: 0.4.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Koen Van Winckel
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-05-
|
18
|
+
date: 2012-05-22 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
requirement: &id001 !ruby/object:Gem::Requirement
|
@@ -39,34 +39,18 @@ dependencies:
|
|
39
39
|
requirements:
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
hash:
|
43
|
-
segments:
|
44
|
-
- 1
|
45
|
-
- 2
|
46
|
-
- 1
|
47
|
-
version: 1.2.1
|
48
|
-
version_requirements: *id002
|
49
|
-
name: capistrano-ext
|
50
|
-
prerelease: false
|
51
|
-
type: :development
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
-
none: false
|
55
|
-
requirements:
|
56
|
-
- - ">="
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
hash: 43
|
42
|
+
hash: 63
|
59
43
|
segments:
|
60
44
|
- 2
|
61
|
-
-
|
45
|
+
- 12
|
62
46
|
- 0
|
63
|
-
version: 2.
|
64
|
-
version_requirements: *
|
47
|
+
version: 2.12.0
|
48
|
+
version_requirements: *id002
|
65
49
|
name: capistrano
|
66
50
|
prerelease: false
|
67
51
|
type: :development
|
68
52
|
- !ruby/object:Gem::Dependency
|
69
|
-
requirement: &
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
70
54
|
none: false
|
71
55
|
requirements:
|
72
56
|
- - ">="
|
@@ -75,28 +59,28 @@ dependencies:
|
|
75
59
|
segments:
|
76
60
|
- 0
|
77
61
|
version: "0"
|
78
|
-
version_requirements: *
|
62
|
+
version_requirements: *id003
|
79
63
|
name: shoulda
|
80
64
|
prerelease: false
|
81
65
|
type: :development
|
82
66
|
- !ruby/object:Gem::Dependency
|
83
|
-
requirement: &
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
84
68
|
none: false
|
85
69
|
requirements:
|
86
70
|
- - ~>
|
87
71
|
- !ruby/object:Gem::Version
|
88
|
-
hash:
|
72
|
+
hash: 21
|
89
73
|
segments:
|
90
74
|
- 1
|
91
|
-
-
|
92
|
-
-
|
93
|
-
version: 1.
|
94
|
-
version_requirements: *
|
75
|
+
- 1
|
76
|
+
- 3
|
77
|
+
version: 1.1.3
|
78
|
+
version_requirements: *id004
|
95
79
|
name: bundler
|
96
80
|
prerelease: false
|
97
81
|
type: :development
|
98
82
|
- !ruby/object:Gem::Dependency
|
99
|
-
requirement: &
|
83
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
100
84
|
none: false
|
101
85
|
requirements:
|
102
86
|
- - ~>
|
@@ -107,12 +91,12 @@ dependencies:
|
|
107
91
|
- 6
|
108
92
|
- 4
|
109
93
|
version: 1.6.4
|
110
|
-
version_requirements: *
|
94
|
+
version_requirements: *id005
|
111
95
|
name: jeweler
|
112
96
|
prerelease: false
|
113
97
|
type: :development
|
114
98
|
- !ruby/object:Gem::Dependency
|
115
|
-
requirement: &
|
99
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
116
100
|
none: false
|
117
101
|
requirements:
|
118
102
|
- - ">="
|
@@ -121,28 +105,28 @@ dependencies:
|
|
121
105
|
segments:
|
122
106
|
- 0
|
123
107
|
version: "0"
|
124
|
-
version_requirements: *
|
108
|
+
version_requirements: *id006
|
125
109
|
name: rcov
|
126
110
|
prerelease: false
|
127
111
|
type: :development
|
128
112
|
- !ruby/object:Gem::Dependency
|
129
|
-
requirement: &
|
113
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
130
114
|
none: false
|
131
115
|
requirements:
|
132
116
|
- - ">="
|
133
117
|
- !ruby/object:Gem::Version
|
134
|
-
hash:
|
118
|
+
hash: 63
|
135
119
|
segments:
|
136
120
|
- 2
|
137
|
-
-
|
121
|
+
- 12
|
138
122
|
- 0
|
139
|
-
version: 2.
|
140
|
-
version_requirements: *
|
123
|
+
version: 2.12.0
|
124
|
+
version_requirements: *id007
|
141
125
|
name: capistrano
|
142
126
|
prerelease: false
|
143
127
|
type: :runtime
|
144
128
|
- !ruby/object:Gem::Dependency
|
145
|
-
requirement: &
|
129
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
146
130
|
none: false
|
147
131
|
requirements:
|
148
132
|
- - ">="
|
@@ -153,26 +137,10 @@ dependencies:
|
|
153
137
|
- 0
|
154
138
|
- 2
|
155
139
|
version: 1.0.2
|
156
|
-
version_requirements: *
|
140
|
+
version_requirements: *id008
|
157
141
|
name: railsless-deploy
|
158
142
|
prerelease: false
|
159
143
|
type: :runtime
|
160
|
-
- !ruby/object:Gem::Dependency
|
161
|
-
requirement: &id010 !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
|
-
requirements:
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
hash: 29
|
167
|
-
segments:
|
168
|
-
- 1
|
169
|
-
- 2
|
170
|
-
- 1
|
171
|
-
version: 1.2.1
|
172
|
-
version_requirements: *id010
|
173
|
-
name: capistrano-ext
|
174
|
-
prerelease: false
|
175
|
-
type: :runtime
|
176
144
|
description: didi is a collection of recipes for capistrano that allow drupal to be deployed, tested and used in a CI environment
|
177
145
|
email: koenvw@gmail.com
|
178
146
|
executables:
|
@@ -185,6 +153,7 @@ extra_rdoc_files:
|
|
185
153
|
- README.rdoc
|
186
154
|
files:
|
187
155
|
- .document
|
156
|
+
- CHANGELOG.txt
|
188
157
|
- Gemfile
|
189
158
|
- Gemfile.lock
|
190
159
|
- LICENSE.txt
|