magentify 0.0.7 → 0.1.0
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 +4 -4
- data/features/files.feature +20 -0
- data/features/step_definitions/common_steps.rb +1 -1
- data/features/step_definitions/files_steps.rb +43 -0
- data/features/templates/deploy.erb +3 -1
- data/lib/mage.rb +29 -1
- data/lib/magentify/version.rb +1 -1
- data/lib/nonrails.rb +0 -8
- metadata +18 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff1bbb842425d3bd571adef51ad8e4af5a411e20
|
4
|
+
data.tar.gz: 199537934883fe2bff97168737b672a240917838
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0eb3423862443d9bc3e7ad27bef7057bc5324658aec8db61a13710a55845c32f28e22797719a8e135bb5af3f783be8d361f7aa3ca92e6d8f95525215a4a2791c
|
7
|
+
data.tar.gz: ca2953d1cd268bc8260061f3c866ca1957151329474441578355ec2acd2f6050757eafe364f625af7ca5c3358850c5fabeba42d2745fa4b71c1f94f9fc01da66
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Feature: Files
|
2
|
+
In order to test the app with production medias
|
3
|
+
As a developer
|
4
|
+
I want to pull (and push) medias assets from production server to my local machine
|
5
|
+
|
6
|
+
Scenario: User runs $ mages:files:pull
|
7
|
+
Given an app
|
8
|
+
When I execute deploy
|
9
|
+
Then Magento create some assets in media
|
10
|
+
And I create some assets locally
|
11
|
+
And I execute files:pull
|
12
|
+
Then the local media directory should be synced
|
13
|
+
|
14
|
+
Scenario: User runs $ mages:files:push
|
15
|
+
Given an app
|
16
|
+
When I execute deploy
|
17
|
+
Then I create some assets locally
|
18
|
+
And Magento create some assets in media
|
19
|
+
And I execute files:push
|
20
|
+
Then the remote media directory should be synced
|
@@ -36,7 +36,7 @@ Given /^an app$/ do
|
|
36
36
|
template_path = File.expand_path(File.join(__FILE__, "..", "..", "templates", "deploy.erb"))
|
37
37
|
compiled_template = ERB.new(File.read(template_path)).result(binding)
|
38
38
|
|
39
|
-
File.open(File.join(@src_dir, "config", "deploy.rb"), 'w') {|f|
|
39
|
+
File.open(File.join(@src_dir, "config", "deploy.rb"), 'w') {|f|
|
40
40
|
f.write compiled_template
|
41
41
|
}
|
42
42
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
When(/^I execute files:pull$/) do
|
2
|
+
Dir.chdir(@src_dir) do
|
3
|
+
@out = %x[cap mage:files:pull > /dev/null 2>&1]
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
7
|
+
Then(/^I execute files:push$/) do
|
8
|
+
Dir.chdir(@src_dir) do
|
9
|
+
@out = %x[cap mage:files:push > /dev/null 2>&1]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
Then(/^Magento create some assets in media$/) do
|
14
|
+
File.open(File.join(@test_files_dir, "deployed", "current", "media", "asset1.jpg"), 'w') {|f|
|
15
|
+
f.write "asset1"
|
16
|
+
}
|
17
|
+
File.open(File.join(@test_files_dir, "deployed", "current", "media", "asset2.jpg"), 'w') {|f|
|
18
|
+
f.write "asset2"
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
Then(/^I create some assets locally$/) do
|
23
|
+
File.open(File.join(@src_dir, "media", "asset3.jpg"), 'w') {|f|
|
24
|
+
f.write "asset3"
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
Then(/^the local media directory should be synced$/) do
|
30
|
+
nb_files = Dir[File.join(@src_dir, "media", '**', '*')].count { |file| File.file?(file) }
|
31
|
+
|
32
|
+
nb_files.should == 3
|
33
|
+
File.exists?(File.join(@src_dir, "media", "asset1.jpg")).should be_true
|
34
|
+
File.exists?(File.join(@src_dir, "media", "asset2.jpg")).should be_true
|
35
|
+
File.exists?(File.join(@src_dir, "media", "asset3.jpg")).should be_true
|
36
|
+
end
|
37
|
+
|
38
|
+
Then(/^the remote media directory should be synced$/) do
|
39
|
+
nb_files = Dir[File.join(@test_files_dir, "deployed", "current", "media", '**', '*')].count { |file| File.file?(file) }
|
40
|
+
|
41
|
+
nb_files.should == 1
|
42
|
+
File.exists?(File.join(@test_files_dir, "deployed", "current", "media", "asset3.jpg")).should be_true
|
43
|
+
end
|
@@ -18,4 +18,6 @@ set :use_sudo, false
|
|
18
18
|
|
19
19
|
set :app_symlinks, ["/media", "/var", "/sitemaps", "/staging"]
|
20
20
|
set :app_shared_dirs, ["/app/etc", "/sitemaps", "/media", "/var", "/staging"]
|
21
|
-
set :app_shared_files, ["/app/etc/local.xml"]
|
21
|
+
set :app_shared_files, ["/app/etc/local.xml"]
|
22
|
+
|
23
|
+
set :interactive_mode, false
|
data/lib/mage.rb
CHANGED
@@ -16,6 +16,8 @@ _cset(:app_shared_files) {
|
|
16
16
|
|
17
17
|
_cset :compile, false
|
18
18
|
_cset :app_webroot, ''
|
19
|
+
_cset :app_relative_media_dir, 'media/'
|
20
|
+
_cset :interactive_mode, true
|
19
21
|
|
20
22
|
namespace :mage do
|
21
23
|
desc <<-DESC
|
@@ -121,8 +123,34 @@ namespace :mage do
|
|
121
123
|
task :clean_log, :roles => [:web, :app] do
|
122
124
|
run "cd #{current_path}#{app_webroot}/shell && php -f log.php -- clean"
|
123
125
|
end
|
126
|
+
|
127
|
+
namespace :files do
|
128
|
+
desc <<-DESC
|
129
|
+
Pull magento media catalog files (from remote to local with rsync)
|
130
|
+
DESC
|
131
|
+
task :pull, :roles => :app, :except => { :no_release => true } do
|
132
|
+
remote_files_dir = "#{current_path}#{app_webroot}/#{app_relative_media_dir}"
|
133
|
+
local_files_dir = app_relative_media_dir
|
134
|
+
first_server = find_servers_for_task(current_task).first
|
135
|
+
|
136
|
+
run_locally("rsync --recursive --times --rsh=ssh --compress --human-readable --progress #{user}@#{first_server.host}:#{remote_files_dir} #{local_files_dir}")
|
137
|
+
end
|
138
|
+
|
139
|
+
desc <<-DESC
|
140
|
+
Push magento media catalog files (from local to remote)
|
141
|
+
DESC
|
142
|
+
task :push, :roles => :app, :except => { :no_release => true } do
|
143
|
+
remote_files_dir = "#{current_path}#{app_webroot}/#{app_relative_media_dir}"
|
144
|
+
local_files_dir = app_relative_media_dir
|
145
|
+
first_server = find_servers_for_task(current_task).first
|
146
|
+
|
147
|
+
if !interactive_mode || Capistrano::CLI.ui.agree("Do you really want to replace remote files by local files? (y/N)")
|
148
|
+
run_locally("rsync --recursive --times --rsh=ssh --compress --human-readable --progress --delete #{local_files_dir} #{user}@#{first_server.host}:#{remote_files_dir}")
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
124
152
|
end
|
125
153
|
|
126
154
|
after 'deploy:setup', 'mage:setup'
|
127
155
|
after 'deploy:finalize_update', 'mage:finalize_update'
|
128
|
-
after 'deploy:create_symlink', 'mage:compiler'
|
156
|
+
after 'deploy:create_symlink', 'mage:compiler'
|
data/lib/magentify/version.rb
CHANGED
data/lib/nonrails.rb
CHANGED
@@ -39,14 +39,6 @@ namespace :deploy do
|
|
39
39
|
# do nothing for non rails apps
|
40
40
|
end
|
41
41
|
|
42
|
-
desc <<-DESC
|
43
|
-
[Overload] Default actions cancelled.
|
44
|
-
DESC
|
45
|
-
task :migrations do
|
46
|
-
set :migrate_target, :latest
|
47
|
-
# // do nothing for non rails apps
|
48
|
-
end
|
49
|
-
|
50
42
|
desc <<-DESC
|
51
43
|
[Overload] Default actions only calls 'update'.
|
52
44
|
DESC
|
metadata
CHANGED
@@ -1,61 +1,61 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: magentify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alistair Stead
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 2.5.10
|
20
|
-
- - ~>
|
20
|
+
- - "~>"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '2'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 2.5.10
|
30
|
-
- - ~>
|
30
|
+
- - "~>"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '2'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: cucumber
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0'
|
40
40
|
type: :development
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- -
|
58
|
+
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0'
|
61
61
|
description: An extension to Capistrano to deploy Magento. Adding the specific requirements
|
@@ -67,7 +67,7 @@ executables:
|
|
67
67
|
extensions: []
|
68
68
|
extra_rdoc_files: []
|
69
69
|
files:
|
70
|
-
- .gitignore
|
70
|
+
- ".gitignore"
|
71
71
|
- Gemfile
|
72
72
|
- LICENSE
|
73
73
|
- README.md
|
@@ -76,6 +76,7 @@ files:
|
|
76
76
|
- cucumber.yml
|
77
77
|
- features/compiler.feature
|
78
78
|
- features/deploy.feature
|
79
|
+
- features/files.feature
|
79
80
|
- features/indexer.feature
|
80
81
|
- features/log.feature
|
81
82
|
- features/magentify.feature
|
@@ -83,6 +84,7 @@ files:
|
|
83
84
|
- features/step_definitions/common_steps.rb
|
84
85
|
- features/step_definitions/compiler_steps.rb
|
85
86
|
- features/step_definitions/deploy_steps.rb
|
87
|
+
- features/step_definitions/files_steps.rb
|
86
88
|
- features/step_definitions/indexer_steps.rb
|
87
89
|
- features/step_definitions/log_steps.rb
|
88
90
|
- features/step_definitions/magentify_steps.rb
|
@@ -105,23 +107,24 @@ require_paths:
|
|
105
107
|
- lib
|
106
108
|
required_ruby_version: !ruby/object:Gem::Requirement
|
107
109
|
requirements:
|
108
|
-
- -
|
110
|
+
- - ">="
|
109
111
|
- !ruby/object:Gem::Version
|
110
112
|
version: '0'
|
111
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
114
|
requirements:
|
113
|
-
- -
|
115
|
+
- - ">="
|
114
116
|
- !ruby/object:Gem::Version
|
115
117
|
version: '0'
|
116
118
|
requirements: []
|
117
119
|
rubyforge_project:
|
118
|
-
rubygems_version: 2.0
|
120
|
+
rubygems_version: 2.2.0
|
119
121
|
signing_key:
|
120
122
|
specification_version: 4
|
121
123
|
summary: Deploying Magento PHP applications with Capistrano.
|
122
124
|
test_files:
|
123
125
|
- features/compiler.feature
|
124
126
|
- features/deploy.feature
|
127
|
+
- features/files.feature
|
125
128
|
- features/indexer.feature
|
126
129
|
- features/log.feature
|
127
130
|
- features/magentify.feature
|
@@ -129,6 +132,7 @@ test_files:
|
|
129
132
|
- features/step_definitions/common_steps.rb
|
130
133
|
- features/step_definitions/compiler_steps.rb
|
131
134
|
- features/step_definitions/deploy_steps.rb
|
135
|
+
- features/step_definitions/files_steps.rb
|
132
136
|
- features/step_definitions/indexer_steps.rb
|
133
137
|
- features/step_definitions/log_steps.rb
|
134
138
|
- features/step_definitions/magentify_steps.rb
|