capistrano-psw 1.0.0.pre6 → 1.0.0.pre7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cc10b5622674ae3323a5136fccfa43120186422a
4
- data.tar.gz: 264b6d4fcdc320c2f82ae0d1c266c0299bad98fd
3
+ metadata.gz: 9be1c9392553922701952bc9e5242cc4c26c96cd
4
+ data.tar.gz: 35e023a0c02a43bc3ece8da65cea524a79ca86ce
5
5
  SHA512:
6
- metadata.gz: 212bcf427877757ee04341e0ae3d3c8d10b744b065e37e0a028151e3cf61d4dc8fab952ff4e1bf9e4661911f11d02407d02ddcf93f545734a187129b22e61fe8
7
- data.tar.gz: 9e4f03b7d9869e389fb9810a5ff6045c01cee5c9284e1f0f881e8203c9942d7fb778a539d3b4e8f43a24d6691bdc9273e0a46b0924c15abc81ab21b3a24edc24
6
+ metadata.gz: 89cc5bbba5502cf782e9aee4767df87db6d481a1fb9babd752a069d050f82fd752d52b29f30a963854ec18c46b3a9338efa7eb9db814d5149d3c572606b88323
7
+ data.tar.gz: da81dcafaec116d10cd2aa9f23e80df62b146b8f3065804cee09ad13bd653ef19815a174828a0003c3b733db31d6d2ca3d6e0c4febd14d748a16ddf1d43c7a60
data/README.md CHANGED
@@ -160,6 +160,32 @@ still points to the last run (otherwise the PID files won't exist)
160
160
  ### psw_clockwork:restart
161
161
  Executes the following tasks: stop, start
162
162
 
163
+ ## Peppr-related Tasks
164
+ These tasks are used for peppr application deployments.
165
+
166
+ ### psw_peppr:environment_files
167
+ Uploads environment files retrieved by peppr to the target machine.
168
+
169
+ ```ruby
170
+ namespace :deploy do
171
+ after :check, 'psw_peppr:environment_files'
172
+ end
173
+ ```
174
+
175
+ ### psw_peppr:clear_shared_files
176
+ (Optional task) Clears the shared folder. This is to ensure that
177
+ stale environment files are not left on the target machine. This task
178
+ should be executed before starting so that Capistrano can re-generate
179
+ necessary shared folder items. Note that running this task will cause
180
+ deployments to be slower due to the fact that gem bins must be re-installed
181
+ for every deploy.
182
+
183
+ ```ruby
184
+ namespace :deploy do
185
+ before :starting, 'psw_peppr:clear_shared_files'
186
+ end
187
+ ```
188
+
163
189
  ## License
164
190
 
165
191
  2013 Lexmark International Technology S.A. All rights reserved.
@@ -10,6 +10,6 @@
10
10
 
11
11
  module Capistrano
12
12
  module Psw
13
- VERSION = "1.0.0.pre6"
13
+ VERSION = "1.0.0.pre7"
14
14
  end
15
15
  end
@@ -0,0 +1,74 @@
1
+ # == peppr.cap
2
+ #
3
+ # Contains the capistrano tasks needed to deploy a peppr application
4
+ #
5
+ # == Configuration
6
+ #
7
+ # To use the defined tasks, hook into other tasks.
8
+ #
9
+ # Examples:
10
+ #
11
+ # before :starting, 'psw_peppr:clear_shared_files'
12
+ # after :check, 'psw_peppr:environment_files'
13
+ #
14
+ # == Tasks
15
+ #
16
+ # === psw_peppr:environment_files
17
+ # This task will upload environment files that were downloaded locally
18
+ # by peppr. Note: This should only be used if peppr is deploying the
19
+ # application. However, if the environment files do not exist, they
20
+ # will not be uploaded.
21
+ #
22
+ # === psw_peppr:clear_shared_files
23
+ # This optional task will delete the shared directory. It should be done
24
+ # before starting. Note that using this task will increase deploy time
25
+ # as bundle will have to re-install gem bins for each deploy. However,
26
+ # this task ensures that stale environment files are not left on the
27
+ # target machine.
28
+ #
29
+ # == Contact
30
+ #
31
+ # Author:: Lexmark International Technology S.A.
32
+ # Copyright:: 2013 Lexmark International Technology S.A. All rights reserved.
33
+ # License:: 3-Clause BSD
34
+
35
+
36
+ namespace :psw_peppr do
37
+ task :environment_files do
38
+ on roles(:app) do |host|
39
+ info "Preparing to upload environment files if applicable..."
40
+ application_id = ENV['peppr_application_id'].to_i
41
+ application_deployment = ENV['peppr_application_deployment_id'].to_i
42
+ if application_id > 0 and application_deployment > 0
43
+ local_shared_files_path = "/tmp/peppr/applications/#{application_id}/deployments/#{application_deployment}/environments/#{fetch(:stage)}/shared_files"
44
+
45
+ func_file_upload = lambda { |file|
46
+ rel_file = "#{file.gsub("#{local_shared_files_path}", '')}"
47
+ rel_file = rel_file[1..-1] if rel_file[0] == '/'
48
+
49
+ if (fetch(:peppr_debug))
50
+ debug "Inspecting: #{rel_file}"
51
+ end
52
+ if File.directory?(file)
53
+ execute :mkdir, '-p', "#{shared_path}/#{rel_file}"
54
+ elsif rel_file.gsub(/\s+/, '') != '' and rel_file != '.' and rel_file != '..'
55
+ info "Uploading environment file #{rel_file}..."
56
+ upload! "#{local_shared_files_path}/#{rel_file}", "#{shared_path}/#{rel_file}"
57
+ end
58
+ }
59
+
60
+ if File.exist?(local_shared_files_path)
61
+ info "Uploading environment files..."
62
+ Find.find(local_shared_files_path).each &func_file_upload
63
+ end
64
+ end
65
+ end
66
+ end
67
+
68
+ task :clear_shared_files do
69
+ on roles(:app) do |host|
70
+ info "Deleting shared folder ..."
71
+ execute :rm, '-rf', "#{shared_path}"
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,34 @@
1
+ require 'rake'
2
+ require 'spec_helper'
3
+
4
+ describe 'psw-peppr' do
5
+ describe 'environment_files' do
6
+ let(:rake) { Rake::Application.new }
7
+ subject { rake["psw_peppr:environment_files"] }
8
+
9
+ before do
10
+ Rake.application = rake
11
+ Rake.application.add_import("./resources/lib/capistrano/tasks/psw-peppr.cap")
12
+ Rake.application.load_imports()
13
+ end
14
+
15
+ it 'should have no prerequisites' do
16
+ subject.prerequisites.should be_empty
17
+ end
18
+ end
19
+
20
+ describe 'clear_shared_files' do
21
+ let(:rake) { Rake::Application.new }
22
+ subject { rake["psw_peppr:clear_shared_files"] }
23
+
24
+ before do
25
+ Rake.application = rake
26
+ Rake.application.add_import("./resources/lib/capistrano/tasks/psw-peppr.cap")
27
+ Rake.application.load_imports()
28
+ end
29
+
30
+ it 'should have no prerequisites' do
31
+ subject.prerequisites.should be_empty
32
+ end
33
+ end
34
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-psw
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre6
4
+ version: 1.0.0.pre7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lexmark International Technology S.A
@@ -86,9 +86,11 @@ files:
86
86
  - lib/capistrano/psw/task_loader.rb
87
87
  - lib/capistrano/psw/version.rb
88
88
  - resources/lib/capistrano/tasks/psw-clockwork.cap
89
+ - resources/lib/capistrano/tasks/psw-peppr.cap
89
90
  - resources/lib/capistrano/tasks/psw-repo.cap
90
91
  - resources/lib/capistrano/tasks/psw-sidekiq.cap
91
92
  - spec/psw-clockwork_spec.rb
93
+ - spec/psw-peppr_spec.rb
92
94
  - spec/psw-repo_spec.rb
93
95
  - spec/psw-sidekiq_spec.rb
94
96
  - spec/spec_helper.rb
@@ -119,6 +121,7 @@ specification_version: 4
119
121
  summary: Contains Capistrano v3 Deployment Tasks
120
122
  test_files:
121
123
  - spec/psw-clockwork_spec.rb
124
+ - spec/psw-peppr_spec.rb
122
125
  - spec/psw-repo_spec.rb
123
126
  - spec/psw-sidekiq_spec.rb
124
127
  - spec/spec_helper.rb