capistrano-faster-rails 1.0.1 → 1.0.4
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/.gitignore +1 -0
- data/README.md +3 -3
- data/capistrano-faster-rails.gemspec +4 -9
- data/lib/capistrano/tasks/faster-rails.rake +34 -9
- metadata +6 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9be7709b36d541d72465155698e5b9d8f6df3c526f651cfd75f42062ccb6a26f
|
4
|
+
data.tar.gz: b7cb9a66577b095f79a56d4819f4cd893141d0fedc67e40f56e29e979d254e21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b90b59041cde3a4feb9b3313f0eed217a5c62cf0837e22473351c1dceefeac2f79786f52ce739bfdde828ad1345c424aef8691a8a5eb6ed1ee1910a3b03f741d
|
7
|
+
data.tar.gz: 31ec4c01fcdc068fe2ba8f2cd4b8fc4ee1a4c3d672cd9c6f67c351c02e4f55195502f9c8f41ceea9539ff69a99fef88f669f10f180c589256d1a9149fbae2e7a
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -10,14 +10,14 @@ Capistrano runs each command separately on their own SSH session and it takes to
|
|
10
10
|
|
11
11
|
`bundle install` takes few or dozens of seconds, most of the time your project's Gemfile will not be changed, and you don't have to execute `bundle install` if your Gemfile isn't changed.
|
12
12
|
|
13
|
-
3. Skip `rake assets:precompile` if asset files not chagned.
|
13
|
+
3. Skip `rake assets:precompile` and `yarn:install` if asset files not chagned.
|
14
14
|
|
15
|
-
`rake assets:precompile` is really slow if your Rails project has plenty of assets to precompile, even if they are not changed. You don't have to execute
|
15
|
+
`rake assets:precompile` and `yarn:install` is really slow if your Rails project has plenty of assets to precompile, even if they are not changed. You don't have to execute them if your asset files not chagned.
|
16
16
|
|
17
17
|
|
18
18
|
## Installation
|
19
19
|
|
20
|
-
Add this line to your Rails application's Gemfile and below to `gem 'capistrano-rails'
|
20
|
+
Add this line to your Rails application's Gemfile and below to `gem 'capistrano-rails'`. if your project have `capistrano-yarn` installed, please add this line below to `gem 'capistrano-yarn'` too.
|
21
21
|
|
22
22
|
```ruby
|
23
23
|
# Gemfile
|
@@ -4,22 +4,17 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "capistrano-faster-rails"
|
7
|
-
spec.version = "1.0.
|
7
|
+
spec.version = "1.0.4"
|
8
8
|
spec.authors = ["lifuzhong"]
|
9
9
|
spec.email = ["lifuzho@126.com"]
|
10
10
|
|
11
11
|
spec.summary = %q{Speedup deploy Ruby On Rails project when using capistrano}
|
12
12
|
spec.description = %q{
|
13
|
-
|
13
|
+
Execute copy `linked_files` and `linked_dirs` with one command on deployed servers.
|
14
14
|
|
15
|
-
|
16
|
-
Capistrano runs each command separately on their own SSH session and it takes too long to deploy an application, copy `linked_files` and `linked_dirs` on deployed servers with one command will speedup deploying process.
|
15
|
+
Skip `bundle install` if Gemfile isn't changed.
|
17
16
|
|
18
|
-
|
19
|
-
`bundle install` takes few or dozens of seconds, most of the time your project's Gemfile will not be changed, and you don't have to execute `bundle install` if your Gemfile isn't changed.
|
20
|
-
|
21
|
-
3. Skip `rake assets:precompile` if asset files not chagned.
|
22
|
-
`rake assets:precompile` is really slow if your Rails project has plenty of assets to precompile, even if they are not changed. You don't have to execute `rake assets:precompile` if your asset files not chagned.
|
17
|
+
Skip `rake assets:precompile` and `yarn:install` if asset files not chagned.
|
23
18
|
}
|
24
19
|
spec.homepage = "https://github.com/ifool/capistrano-faster-rails"
|
25
20
|
spec.license = 'MIT'
|
@@ -1,3 +1,12 @@
|
|
1
|
+
asset_change = proc {
|
2
|
+
asset_files = fetch(:asset_files, "vendor/assets app/assets config/initializers/assets.rb")
|
3
|
+
within(repo_path) {
|
4
|
+
previous_revision, current_revision = fetch(:previous_revision), fetch(:current_revision)
|
5
|
+
previous_revision.to_s.empty? ||
|
6
|
+
!capture("cd #{repo_path} && git diff --name-only #{previous_revision} #{current_revision} -- #{asset_files}").empty?
|
7
|
+
}
|
8
|
+
}
|
9
|
+
|
1
10
|
namespace :deploy do
|
2
11
|
namespace :symlink do
|
3
12
|
Rake::Task["deploy:symlink:linked_files"].clear_actions
|
@@ -33,14 +42,7 @@ namespace :deploy do
|
|
33
42
|
task :precompile do
|
34
43
|
on(release_roles(fetch(:assets_roles))) {
|
35
44
|
log "[deploy:assets:precompile] Checking assets changes"
|
36
|
-
|
37
|
-
asset_changed = within(repo_path) {
|
38
|
-
previous_revision, current_revision = fetch(:previous_revision), fetch(:current_revision)
|
39
|
-
previous_revision.to_s.empty? ||
|
40
|
-
!capture("cd #{repo_path} && git diff --name-only #{previous_revision} #{current_revision} -- #{asset_files}").empty?
|
41
|
-
}
|
42
|
-
|
43
|
-
if asset_changed
|
45
|
+
if asset_change.call()
|
44
46
|
within(release_path) do
|
45
47
|
with rails_env: fetch(:rails_env), rails_groups: fetch(:rails_assets_groups) do
|
46
48
|
execute :rake, "assets:precompile"
|
@@ -67,7 +69,7 @@ namespace :bundler do
|
|
67
69
|
!capture("cd #{repo_path} && git diff --name-only #{previous_revision} #{current_revision} -- #{bundle_files}").empty?
|
68
70
|
}
|
69
71
|
|
70
|
-
within release_path
|
72
|
+
within release_path {
|
71
73
|
with fetch(:bundle_env_variables) do
|
72
74
|
options = []
|
73
75
|
options << "--gemfile #{fetch(:bundle_gemfile)}" if fetch(:bundle_gemfile)
|
@@ -85,6 +87,29 @@ namespace :bundler do
|
|
85
87
|
end
|
86
88
|
end
|
87
89
|
end
|
90
|
+
}
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
yarn_install_task = Rake::Task["yarn:install"] rescue nil
|
96
|
+
if yarn_install_task
|
97
|
+
yarn_install_task.clear_actions
|
98
|
+
|
99
|
+
namespace :yarn do
|
100
|
+
Rake::Task["yarn:install"]
|
101
|
+
task :install do
|
102
|
+
on roles fetch(:yarn_roles) do
|
103
|
+
log "[yarn:install] Checking assets changes"
|
104
|
+
if asset_change.call()
|
105
|
+
within fetch(:yarn_target_path, release_path) do
|
106
|
+
with fetch(:yarn_env_variables, {}) do
|
107
|
+
execute fetch(:yarn_bin), 'install', fetch(:yarn_flags)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
else
|
111
|
+
log "[yarn:install] Skip `yarn:install` (assets not changed)"
|
112
|
+
end
|
88
113
|
end
|
89
114
|
end
|
90
115
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-faster-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lifuzhong
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,17 +38,10 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
|
-
description: "\n
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
speedup deploying process.\n\n 2. Skip `bundle install` if Gemfile isn't changed.\n
|
46
|
-
\ `bundle install` takes few or dozens of seconds, most of the time your project's
|
47
|
-
Gemfile will not be changed, and you don't have to execute `bundle install` if your
|
48
|
-
Gemfile isn't changed.\n\n 3. Skip `rake assets:precompile` if asset files
|
49
|
-
not chagned.\n `rake assets:precompile` is really slow if your Rails project
|
50
|
-
has plenty of assets to precompile, even if they are not changed. You don't have
|
51
|
-
to execute `rake assets:precompile` if your asset files not chagned.\n "
|
41
|
+
description: "\n Execute copy `linked_files` and `linked_dirs` with one command
|
42
|
+
on deployed servers.\n\n Skip `bundle install` if Gemfile isn't changed.\n\n
|
43
|
+
\ Skip `rake assets:precompile` and `yarn:install` if asset files not chagned.\n
|
44
|
+
\ "
|
52
45
|
email:
|
53
46
|
- lifuzho@126.com
|
54
47
|
executables: []
|