capistrano-psw 1.0.0.pre33 → 1.0.0.pre34
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/capistrano/psw/version.rb +1 -1
- data/resources/lib/capistrano/tasks/psw-peppr-app-deploy.cap +66 -36
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6b61dbaec2f8f0cac76941f3095074c3404a71e
|
4
|
+
data.tar.gz: 66e72333aea714660f5981c32d3067fd35d3c8a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed260af184c0e90f492174ed77be814987b9e6f3100650bf01c192ee9ec6a7312c32b11cfeb97cc5ffd9266a351eede23ff6428be234a98610ef1533e70cf6e9
|
7
|
+
data.tar.gz: b7b6221258d8282f0e9a7187cdabb23f8acd8704098e812dee3557ce8079d38cfea0d3f1029c7eb6a51a138b61976b14f4187bc2b8da781129f632a91094a8df
|
@@ -76,55 +76,85 @@ namespace :psw_peppr_app_deploy do
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
+
desc 'Packer Gems locally so they can be pushed to the remote host'
|
80
|
+
task :pack_gems do
|
81
|
+
pack_gems = fetch(:psw_peppr_app_deploy_pack_gems)
|
82
|
+
puts "pack_gems: #{pack_gems}"
|
83
|
+
if !pack_gems.nil? && pack_gems
|
84
|
+
on roles(:app) do |host|
|
85
|
+
info "Packing local Gems for deploy to host #{host}..."
|
86
|
+
end
|
87
|
+
|
88
|
+
local_shared_files_path = PepprAppDeployFileUtils::Local::get_deployment_shared_files_dir
|
89
|
+
|
90
|
+
Bundler.with_clean_env do
|
91
|
+
run_locally do
|
92
|
+
cmd = "bundle install --gemfile Gemfile --path vendor/bundle --without development test --deployment --quiet"
|
93
|
+
info "Executing install command: #{cmd}"
|
94
|
+
execute(cmd)
|
95
|
+
cmd = "bundle package --all"
|
96
|
+
info "Executing bundle package command: #{cmd}"
|
97
|
+
execute(cmd)
|
98
|
+
|
99
|
+
cmd = "mv vendor/ #{local_shared_files_path}"
|
100
|
+
info "Executing move command: #{cmd}"
|
101
|
+
execute(cmd)
|
102
|
+
|
103
|
+
cmd = "mv Gemfile.lock #{local_shared_files_path}"
|
104
|
+
info "Executing move command: #{cmd}"
|
105
|
+
execute(cmd)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
else
|
109
|
+
on roles(:app) do |host|
|
110
|
+
info "Peppr will not send local Gems to remote host #{host}"
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
79
115
|
desc 'Copy application enviroment files to remote machine'
|
80
116
|
task :upload_environment_files do
|
81
|
-
on roles(:app) do |host|
|
117
|
+
on roles(:app) do |host|
|
82
118
|
info 'Preparing to upload environment files (if applicable)...'
|
83
119
|
local_shared_files_path = PepprAppDeployFileUtils::Local::get_deployment_shared_files_dir
|
120
|
+
remote_shared_files_path = PepprAppDeployFileUtils::Remote::get_deployment_shared_files_dir
|
121
|
+
|
122
|
+
info "Uploading #{local_shared_files_path} (local) to #{remote_shared_files_path} on remote server #{host}..."
|
123
|
+
PepprAppDeployFileUtils::upload_compressed_local_dir(local_shared_files_path, remote_shared_files_path)
|
124
|
+
|
125
|
+
#this will only list the top-level folders and files, nested will show as a result of the link
|
126
|
+
if File.directory?(local_shared_files_path)
|
127
|
+
Dir.foreach(local_shared_files_path) do |file|
|
128
|
+
next if file == '.' || file == '..' || file == '.absolute_paths'
|
129
|
+
|
130
|
+
if File.directory?(file)
|
131
|
+
debug "Creating a symlink for environment folder #{remote_shared_files_path}/#{file}..."
|
132
|
+
sudo :ln, '-sf', "#{remote_shared_files_path}/#{file}", "#{shared_path}"
|
133
|
+
else
|
134
|
+
debug "Creating a symlink for environment file #{remote_shared_files_path}/#{file}..."
|
135
|
+
sudo :ln, '-sf', "#{remote_shared_files_path}/#{file}", "#{shared_path}/#{file}"
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
84
139
|
|
85
|
-
|
86
|
-
|
140
|
+
#absolute directories and files need to explicitly link files (can't just link to remote file folder)
|
141
|
+
if File.directory?("#{local_shared_files_path}/.absolute_paths")
|
87
142
|
files = Find.find(local_shared_files_path)
|
88
|
-
|
89
143
|
absolute_path_files, shared_files = files.partition { |f| f.start_with? "#{local_shared_files_path}/.absolute_paths" }
|
90
144
|
|
91
|
-
if shared_files.nil?
|
92
|
-
info "Uploading #{shared_files.size} relative shared directory environment files..."
|
93
|
-
else
|
94
|
-
info "There are no relative shared directory environment files to upload."
|
95
|
-
end
|
96
|
-
shared_files.each do |file|
|
97
|
-
relative_path = file.gsub("#{local_shared_files_path}/", '')
|
98
|
-
|
99
|
-
debug "Inspecting: #{relative_path}"
|
100
|
-
|
101
|
-
if File.directory?(file) && relative_path.strip != ''
|
102
|
-
execute :mkdir, '-p', "#{shared_path}/#{relative_path}"
|
103
|
-
elsif relative_path.gsub(/\s+/, '') != '' and relative_path != '.' and relative_path != '..'
|
104
|
-
debug "Uploading environment file #{relative_path}..."
|
105
|
-
upload! file, "#{shared_path}/#{relative_path}"
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
if absolute_path_files.nil?
|
110
|
-
info "Uploading #{shared_files.size} absolute path environment files..."
|
111
|
-
else
|
112
|
-
info "There are no absolute path environment files to upload."
|
113
|
-
end
|
114
145
|
absolute_path_files.each do |file|
|
115
146
|
relative_path = file.gsub("#{local_shared_files_path}/.absolute_paths", '')
|
116
|
-
|
117
|
-
debug "Inspecting: #{relative_path}"
|
147
|
+
filename = Pathname.new(relative_path).basename
|
118
148
|
|
119
149
|
if File.directory?(file) && relative_path.strip != ''
|
120
|
-
|
150
|
+
#we need to create the directories because symlinks don't created nested folders
|
151
|
+
execute :mkdir, '-p', relative_path
|
121
152
|
elsif relative_path.gsub(/\s+/, '') != '' and relative_path != '.' and relative_path != '..'
|
122
|
-
|
123
|
-
|
124
|
-
|
153
|
+
original_location = File.join(remote_shared_files_path, ".absolute_paths", relative_path)
|
154
|
+
debug "Creating a symlink from environment file #{original_location} to #{relative_path}..."
|
155
|
+
sudo :ln, '-sf', original_location, relative_path
|
156
|
+
end
|
125
157
|
end
|
126
|
-
else
|
127
|
-
info "The shared files path, #{local_shared_files_path} does not exist."
|
128
158
|
end
|
129
159
|
end
|
130
160
|
end
|
@@ -161,7 +191,7 @@ namespace :psw_peppr_app_deploy do
|
|
161
191
|
end
|
162
192
|
|
163
193
|
desc "Deploy a Peppr application to the remote server(s)"
|
164
|
-
task default: [:'set_deploy_revision', :'create_deployment_directories', :'upload_app_source_repo', :'upload_environment_files', :'upload_artifacts', :'remove_existing_source_repo'] do
|
194
|
+
task default: [:'set_deploy_revision', :'create_deployment_directories', :'upload_app_source_repo', :'pack_gems', :'upload_environment_files', :'upload_artifacts', :'remove_existing_source_repo'] do
|
165
195
|
end
|
166
196
|
|
167
197
|
desc 'Task to create a symlink from the artifacts directory to the release directory'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-psw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.pre34
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lexmark International Technology S.A
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|