capistrano-opscomplete 0.6.3 → 1.0.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/CHANGELOG.md +33 -0
- data/Gemfile.lock +1 -1
- data/README.md +28 -4
- data/lib/capistrano-opscomplete.rb +0 -0
- data/lib/capistrano/dsl/opscomplete.rb +43 -39
- data/lib/capistrano/opscomplete.rb +2 -0
- data/lib/capistrano/opscomplete/hooks.rb +1 -0
- data/lib/capistrano/opscomplete/nodejs.rake +55 -0
- data/lib/capistrano/opscomplete/ruby.rake +65 -36
- data/lib/capistrano/opscomplete/supervisor.rake +1 -1
- data/lib/capistrano/opscomplete/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7bda13c0f33ab7e11818d801b18587bb9cd5754f114b757627296d4cb1fc338
|
4
|
+
data.tar.gz: 7587402cf62a88b9b7980ec1567f60552fa6fa8d8f1eb10d811c123175323bb0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 76e8a0d39c56bbc84fa91d4fc52fb1c22106c6afe19f47e0dff2a27fbd81ce0c2cf76cc7d0b2d90b6aa270d71fa9d5de02a076291883bc7bbc2c1c59a1e864cb
|
7
|
+
data.tar.gz: a481d59f2a8e9cf719ec0e6120eebf9672c0a765bfe69ef253c262879c0d0d0f5874ad0a3508b7c7e3b93173ec8ae054090b55384f640e82773d86fb5779e2fa
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,36 @@
|
|
1
|
+
## [1.0.0] - 2021-03-16
|
2
|
+
|
3
|
+
### Changed
|
4
|
+
- Version bump to 1.0 and switch to semantic versioning: There were no breaking changes
|
5
|
+
- Remove rbenv dependency for our opscomplete infrastructure
|
6
|
+
|
7
|
+
## [0.6.7] - 2021-02-05
|
8
|
+
|
9
|
+
### Fixed
|
10
|
+
- Fix missing command in opscomplete:nodejs:check
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
- Improve error message for wrong Node.js version
|
14
|
+
|
15
|
+
## [0.6.6] - 2020-12-08
|
16
|
+
|
17
|
+
### Fixed
|
18
|
+
- Fix the error `undefined method 'after' for main:Object (NoMethodError)` when starting the rails application with capistrano-opscomplete required
|
19
|
+
|
20
|
+
## [0.6.5] - 2020-11-20
|
21
|
+
|
22
|
+
### Fixed
|
23
|
+
- Correct warning message for `opscomplete:ruby:broken_gems_warning`
|
24
|
+
|
25
|
+
## [0.6.4] - 2020-11-19
|
26
|
+
|
27
|
+
### Added
|
28
|
+
- You can now manage the Node.js version which needs to be installed
|
29
|
+
- Add two new capistrano tasks (`opscomplete:ruby:broken_gems_warning`, `opscomplete:ruby:reset`) which help to mitigate problems when a deployment fails (described in: [#19](https://github.com/makandra/capistrano-opscomplete/issues/19))
|
30
|
+
|
31
|
+
### Fixed
|
32
|
+
- Added missing namespace for code example
|
33
|
+
|
1
34
|
## [0.6.3] - 2020-07-23
|
2
35
|
|
3
36
|
### Fixed
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -36,7 +36,13 @@ An example configuration could look like this:
|
|
36
36
|
after 'deploy:updating', 'opscomplete:ruby:ensure'
|
37
37
|
```
|
38
38
|
|
39
|
-
|
39
|
+
If you want to handle the ruby version for rollbacks too, you should add:
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
after 'deploy:reverting', 'opscomplete:ruby:ensure'
|
43
|
+
```
|
44
|
+
|
45
|
+
And in case you enabled [`Procfile support`](https://makandracards.com/opscomplete/67829-procfile-support) you can use the following tasks:
|
40
46
|
|
41
47
|
opscomplete:supervisor:gen_config
|
42
48
|
opscomplete:supervisor:restart_procs
|
@@ -105,11 +111,11 @@ More specifically this task will:
|
|
105
111
|
1) The value of `:opscomplete_ruby_version` from your capistrano config. Leave this empty unless you want to override the desired version.
|
106
112
|
2) A file in the `release_path` on the server (e.g. `/var/www/staging.myapp.biz/releases/20180523234205/.ruby-version`)
|
107
113
|
3) A file in the current working directory of your local checkout (e.g. `/home/user/code/myapp/.ruby-version`)
|
108
|
-
- If the desired version is not installed, it checks if it can be installed
|
109
|
-
- Check if
|
114
|
+
- If the desired version is not installed, it checks if it can be installed and installs it.
|
115
|
+
- Check if the global version is set according to application's `.ruby-version` file. Change it if required.
|
110
116
|
- Install `bundler`. It is tried to determine the version that was used to create the `Gemfile.lock` (`BUNDLED WITH`) if it is present.
|
111
117
|
- Install `geordi` gem if required.
|
112
|
-
-
|
118
|
+
- Rehash the shims if required.
|
113
119
|
|
114
120
|
**Note:** If, for any reason, no `.ruby-version` file can be found in your release or current working directory, you may set the following option in `deploy.rb`:
|
115
121
|
|
@@ -151,6 +157,24 @@ There are many hooks available in the [default deploy flow](https://capistranorb
|
|
151
157
|
after 'deploy:updating', 'opscomplete:ruby:ensure'
|
152
158
|
```
|
153
159
|
|
160
|
+
## Managing your nodejs version with `capistrano-opscomplete`
|
161
|
+
|
162
|
+
You can manage NodeJS also with `capistrano-opscomplete`. It will check the `.nvmrc`, `.node-version` and `.tool-versions` in the release direcotry (in this order) or you can configure it with `:opscomplete_nodejs_version` in your capistrano configuration.
|
163
|
+
|
164
|
+
Include the gem in your applications Gemfile:
|
165
|
+
|
166
|
+
```ruby
|
167
|
+
gem 'capistrano-opscomplete'
|
168
|
+
```
|
169
|
+
|
170
|
+
Now, add some [hooks](#using-capistrano-hooks) in your capistrano configuration (e.g. `deploy.rb`).
|
171
|
+
An example configuration could look like this:
|
172
|
+
|
173
|
+
```ruby
|
174
|
+
# After unpacking your release, before bundling, compiling assets, ...
|
175
|
+
after 'deploy:updating', 'opscomplete:nodejs:ensure'
|
176
|
+
```
|
177
|
+
|
154
178
|
## Contributing
|
155
179
|
|
156
180
|
Bug reports and pull requests are welcome. Don't hesitate to [open a new issue](https://github.com/makandra/capistrano-opscomplete/issues/new).
|
File without changes
|
@@ -3,19 +3,7 @@ module Capistrano
|
|
3
3
|
# A whole capistrano/rake namespace, for grouping our helpers and tasks
|
4
4
|
module Opscomplete
|
5
5
|
def managed_ruby?
|
6
|
-
test(
|
7
|
-
end
|
8
|
-
|
9
|
-
def rbenv_ruby_build_path
|
10
|
-
"#{rbenv_root_path}/plugins/ruby-build"
|
11
|
-
end
|
12
|
-
|
13
|
-
def rbenv_repo_url
|
14
|
-
'https://github.com/rbenv/rbenv.git'
|
15
|
-
end
|
16
|
-
|
17
|
-
def ruby_build_repo_url
|
18
|
-
'https://github.com/rbenv/ruby-build.git'
|
6
|
+
test(:ruby_update_management_tool, 'managed')
|
19
7
|
end
|
20
8
|
|
21
9
|
def app_ruby_version
|
@@ -64,49 +52,65 @@ module Capistrano
|
|
64
52
|
end
|
65
53
|
end
|
66
54
|
|
67
|
-
def
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
rbenv_installable_rubies
|
55
|
+
def ruby_installable_versions
|
56
|
+
ruby_installable_versions = capture(:ruby_installable_versions).split("\n")
|
57
|
+
ruby_installable_versions.map!(&:strip)
|
58
|
+
ruby_installable_versions
|
72
59
|
end
|
73
60
|
|
74
|
-
def
|
75
|
-
capture(:
|
61
|
+
def ruby_installed_versions
|
62
|
+
ruby_installed_versions = capture(:ruby_installed_versions).split("\n")
|
63
|
+
ruby_installed_versions.map!(&:strip)
|
64
|
+
warn('Could not look up installed versions. This is probably the first ruby install.') if ruby_installed_versions.empty?
|
65
|
+
ruby_installed_versions
|
76
66
|
end
|
77
67
|
|
78
|
-
def
|
79
|
-
if
|
80
|
-
|
81
|
-
rbenv_installed_rubies.map!(&:strip)
|
68
|
+
def gem_installed?(name, version = nil)
|
69
|
+
if version
|
70
|
+
test(:ruby_installed_gem, name, '--version', "'#{version}'")
|
82
71
|
else
|
83
|
-
|
84
|
-
[]
|
72
|
+
test(:ruby_installed_gem, name)
|
85
73
|
end
|
86
74
|
end
|
87
75
|
|
88
|
-
def
|
89
|
-
execute(:rbenv, :exec, *args)
|
90
|
-
end
|
91
|
-
|
92
|
-
def gem_installed?(name, version = nil)
|
76
|
+
def gem_install(name, version = nil, force = false)
|
93
77
|
if version
|
94
|
-
|
78
|
+
execute(:ruby_install_gem, name, '--version', "'#{version}'", force ? '--force' : '')
|
95
79
|
else
|
96
|
-
|
80
|
+
execute(:ruby_install_gem, name)
|
97
81
|
end
|
98
82
|
end
|
99
83
|
|
100
|
-
def
|
101
|
-
|
102
|
-
|
84
|
+
def managed_nodejs?
|
85
|
+
test("[ -f ${HOME}/.nodejs_managed_by_makandra ]")
|
86
|
+
end
|
87
|
+
|
88
|
+
def app_nodejs_version
|
89
|
+
|
90
|
+
# 1) Get version from capistrano configuration (highest precedence, 'override')
|
91
|
+
if fetch(:opscomplete_nodejs_version)
|
92
|
+
debug("Using version from :opscomplete_nodejs_version setting: #{fetch(:opscomplete_nodejs_version)}.")
|
93
|
+
fetch(:opscomplete_nodejs_version)
|
94
|
+
|
95
|
+
# 2) Get version from version file in release dir (after deploy:updating, before deploy:updated)
|
96
|
+
elsif capture(:nodejs_get_version, release_path)
|
97
|
+
debug("Using version from server's release_dir/.nvmrc, .node-version or .tool-versions file: #{capture(:nodejs_get_version, release_path)}")
|
98
|
+
capture(:nodejs_get_version, release_path)
|
99
|
+
|
103
100
|
else
|
104
|
-
|
101
|
+
raise Capistrano::ValidationError, 'Could not find application\'s Node.js version. Consider setting opscomplete_ruby_version.'
|
105
102
|
end
|
106
103
|
end
|
107
104
|
|
108
|
-
def
|
109
|
-
|
105
|
+
def nodejs_installable_versions
|
106
|
+
nodejs_installable_versions = capture(:nodejs_installable_versions).split("\n")
|
107
|
+
nodejs_installable_versions.map!(&:strip)
|
108
|
+
nodejs_installable_versions
|
109
|
+
end
|
110
|
+
|
111
|
+
def nodejs_installed_versions
|
112
|
+
nodejs_installed_versions = capture(:nodejs_installed_versions).split("\n")
|
113
|
+
nodejs_installed_versions.map!(&:strip)
|
110
114
|
end
|
111
115
|
end
|
112
116
|
end
|
@@ -4,4 +4,6 @@ require 'capistrano/opscomplete/version'
|
|
4
4
|
require 'rake'
|
5
5
|
|
6
6
|
load File.expand_path('opscomplete/ruby.rake', __dir__)
|
7
|
+
load File.expand_path('opscomplete/nodejs.rake', __dir__)
|
7
8
|
load File.expand_path('opscomplete/supervisor.rake', __dir__)
|
9
|
+
load File.expand_path('../opscomplete/hooks.rb', __FILE__)
|
@@ -0,0 +1 @@
|
|
1
|
+
after 'deploy:failed', 'opscomplete:ruby:broken_gems_warning'
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# vim: filetype=ruby
|
2
|
+
require 'capistrano/dsl/opscomplete'
|
3
|
+
|
4
|
+
namespace :opscomplete do
|
5
|
+
include Capistrano::DSL::Opscomplete
|
6
|
+
# desc 'Validate opscomplete specific configuration'
|
7
|
+
task :validate do
|
8
|
+
invoke('opscomplete:nodejs:check')
|
9
|
+
end
|
10
|
+
|
11
|
+
namespace :nodejs do
|
12
|
+
desc 'Check if nodejs version is set according to application\'s .node-version or .nvmrc (in this order).'
|
13
|
+
task :check do
|
14
|
+
on roles fetch(:nodejs_roles, :all) do |host|
|
15
|
+
warn("#{host}: Managed Node.js environment! Won't do any changes to nodejs version.") if managed_nodejs?
|
16
|
+
unless capture(:nodejs_get_version, release_path) == app_nodejs_version
|
17
|
+
raise Capistrano::ValidationError,
|
18
|
+
"#{host}: Node.js version is not set according to application\'s .node-version or .nvmrc file. Use cap opscomplete:nodejs:ensure."
|
19
|
+
end
|
20
|
+
info("#{host}: Node.js #{app_nodejs_version} is installed.")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'Update Node.js version management tool'
|
25
|
+
task :update_nodejs_build do
|
26
|
+
on roles fetch(:nodejs_roles, :all) do
|
27
|
+
execute :nodejs_update_management_tool
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
desc 'Install and configure NodeJS according to applications .nvmrc, .node-version or .tool-versions.'
|
32
|
+
task :ensure do
|
33
|
+
invoke('opscomplete:nodejs:update_nodejs_build')
|
34
|
+
on roles fetch(:nodejs_roles, :all) do |host|
|
35
|
+
if managed_nodejs?
|
36
|
+
raise Capistrano::ValidationError, "#{host}: Managed Node.js environment! Won't do any changes to Node.js version."
|
37
|
+
end
|
38
|
+
if nodejs_installed_versions.include?(app_nodejs_version)
|
39
|
+
info("#{host}: Node.js #{app_nodejs_version} is installed.")
|
40
|
+
elsif nodejs_installable_versions.include?(app_nodejs_version)
|
41
|
+
info("#{host}: Configured Node.js version is not installed, but available for installation.")
|
42
|
+
with tmpdir: fetch(:tmp_dir) do
|
43
|
+
execute(:nodejs_install_version, "'#{app_nodejs_version}'")
|
44
|
+
end
|
45
|
+
else
|
46
|
+
info("#{host}: Check if the configured Node.js version is part of the installable versions")
|
47
|
+
execute :nodejs_installable_versions
|
48
|
+
raise Capistrano::ValidationError,
|
49
|
+
"#{host}: Configured Node.js version is neither installed nor installable."
|
50
|
+
end
|
51
|
+
execute(:nodejs_set_version, "'#{app_nodejs_version}'")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -9,18 +9,11 @@ namespace :opscomplete do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
namespace :ruby do
|
12
|
-
|
13
|
-
task :rehash do
|
14
|
-
on roles fetch(:rbenv_roles, :all) do
|
15
|
-
execute(:rbenv, :rehash)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
desc 'Check if rbenv global Ruby version is set according to application\'s .ruby-version.'
|
12
|
+
desc 'Check if Ruby version is set according to application\'s .ruby-version.'
|
20
13
|
task :check do
|
21
14
|
on roles fetch(:rbenv_roles, :all) do |host|
|
22
15
|
warn("#{host}: Managed Ruby environment! Won't do any changes to ruby version.") if managed_ruby?
|
23
|
-
unless capture(:
|
16
|
+
unless capture(:ruby_get_current_version) == app_ruby_version
|
24
17
|
raise Capistrano::ValidationError,
|
25
18
|
"#{host}: Ruby version is not set according to application\'s .ruby-version file. Use cap opscomplete:ruby:ensure."
|
26
19
|
end
|
@@ -28,61 +21,58 @@ namespace :opscomplete do
|
|
28
21
|
end
|
29
22
|
end
|
30
23
|
|
31
|
-
|
24
|
+
desc 'Install Ruby version management tool dependencies'
|
32
25
|
task :install_ruby_build do
|
33
26
|
on roles fetch(:rbenv_roles, :all) do
|
34
|
-
|
35
|
-
execute :git, :clone, ruby_build_repo_url, rbenv_ruby_build_path
|
27
|
+
execute(:ruby_update_management_tool, :install_build)
|
36
28
|
end
|
37
29
|
end
|
38
30
|
|
39
|
-
|
31
|
+
desc 'Update Ruby version management tool'
|
40
32
|
task :update_ruby_build do
|
41
33
|
on roles fetch(:rbenv_roles, :all) do
|
42
|
-
|
43
|
-
within rbenv_ruby_build_path do
|
44
|
-
execute :git, :pull, '-q'
|
45
|
-
end
|
46
|
-
else
|
47
|
-
warn('Could not find ruby-build.')
|
48
|
-
end
|
34
|
+
execute(:ruby_update_management_tool, :update_build)
|
49
35
|
end
|
50
36
|
end
|
51
37
|
|
52
|
-
|
38
|
+
desc 'Rehash shims (run this after installing executables).'
|
39
|
+
task :rehash do
|
40
|
+
on roles fetch(:rbenv_roles, :all) do
|
41
|
+
execute(:ruby_update_management_tool, :rehash)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
desc 'Install bundler gem'
|
53
46
|
task :install_bundler do
|
54
47
|
on roles fetch(:rbenv_roles, :all) do
|
55
48
|
# manually specified version will take precedence
|
56
49
|
specific_bundler_version = fetch(:bundler_version, app_gemfile_bundled_with_version)
|
57
|
-
|
58
50
|
if specific_bundler_version
|
59
51
|
# We have to set force = true to overwrite the binary
|
60
52
|
gem_install('bundler', specific_bundler_version, true) unless gem_installed?('bundler', specific_bundler_version)
|
61
53
|
else
|
62
54
|
gem_install('bundler') unless gem_installed?('bundler')
|
63
55
|
end
|
64
|
-
set :rbenv_needs_rehash, true
|
65
56
|
end
|
66
57
|
end
|
67
58
|
|
68
|
-
|
59
|
+
desc 'Install geordi gem'
|
69
60
|
task :install_geordi do
|
70
61
|
on roles fetch(:rbenv_roles, :all) do
|
71
62
|
gem_install('geordi') unless gem_installed?('geordi')
|
72
|
-
set :rbenv_needs_rehash, true
|
73
63
|
end
|
74
64
|
end
|
75
65
|
|
66
|
+
desc 'Install RubyGems'
|
76
67
|
task :install_rubygems do
|
77
68
|
on roles fetch(:rbenv_roles, :all) do
|
78
|
-
# if no rubygems_version was set, we use and don't check the rubygems version
|
69
|
+
# if no rubygems_version was set, we use and don't check the installed rubygems version
|
79
70
|
if fetch(:rubygems_version, false)
|
80
|
-
current_rubygems_version = capture(:
|
71
|
+
current_rubygems_version = capture(:ruby_get_current_version, :rubygems).chomp
|
81
72
|
info("Ensuring requested RubyGems version #{fetch(:rubygems_version)}")
|
82
73
|
next if current_rubygems_version == fetch(:rubygems_version)
|
83
74
|
info("Previously installed RubyGems version was #{current_rubygems_version}")
|
84
|
-
|
85
|
-
set :rbenv_needs_rehash, true
|
75
|
+
execute(:ruby_install_version, :rubygems, "'#{fetch(:rubygems_version)}'")
|
86
76
|
end
|
87
77
|
end
|
88
78
|
end
|
@@ -94,24 +84,63 @@ namespace :opscomplete do
|
|
94
84
|
if managed_ruby?
|
95
85
|
raise Capistrano::ValidationError, "#{host}: Managed Ruby environment! Won't do any changes to Ruby version."
|
96
86
|
end
|
97
|
-
if
|
87
|
+
if ruby_installed_versions.include?(app_ruby_version)
|
98
88
|
info("#{host}: Ruby #{app_ruby_version} is installed.")
|
99
|
-
elsif
|
89
|
+
elsif ruby_installable_versions.include?(app_ruby_version)
|
100
90
|
info("#{host}: Configured Ruby version is not installed, but available for installation.")
|
101
91
|
with tmpdir: fetch(:tmp_dir) do
|
102
|
-
execute(:
|
92
|
+
execute(:ruby_install_version, "'#{app_ruby_version}'")
|
103
93
|
end
|
104
|
-
set :rbenv_needs_rehash, true
|
105
94
|
else
|
106
95
|
raise Capistrano::ValidationError,
|
107
|
-
"#{host}: Configured Ruby version is neither installed nor installable
|
96
|
+
"#{host}: Configured Ruby version is neither installed nor installable."
|
97
|
+
end
|
98
|
+
unless capture(:ruby_get_current_version) == app_ruby_version
|
99
|
+
set :ruby_modified, true
|
100
|
+
execute(:ruby_set_version, "'#{app_ruby_version}'")
|
108
101
|
end
|
109
|
-
execute(:rbenv, :global, "'#{app_ruby_version}'") unless capture(:rbenv, :global) == app_ruby_version
|
110
102
|
end
|
111
103
|
invoke('opscomplete:ruby:install_rubygems')
|
112
104
|
invoke('opscomplete:ruby:install_bundler')
|
113
105
|
invoke('opscomplete:ruby:install_geordi')
|
114
|
-
invoke('opscomplete:ruby:rehash')
|
106
|
+
invoke('opscomplete:ruby:rehash')
|
107
|
+
end
|
108
|
+
|
109
|
+
desc 'resets the global ruby version and gems to Gemfile and .ruby-version in current_path.'
|
110
|
+
task :reset do
|
111
|
+
on roles fetch(:rbenv_roles, :all) do |host|
|
112
|
+
within current_path do
|
113
|
+
current_ruby_version_file_path = current_path.join('.ruby-version').to_s
|
114
|
+
if test("[ -f #{current_ruby_version_file_path} ]")
|
115
|
+
execute(:rbenv, :global, capture(:cat, current_ruby_version_file_path))
|
116
|
+
else
|
117
|
+
raise Capistrano::ValidationError,
|
118
|
+
"#{host}: Missing .ruby-version in #{current_path}. Won't set a new global version."
|
119
|
+
end
|
120
|
+
if test("[ -f '#{current_path}/.bundle/config' ]")
|
121
|
+
debug("#{host}: Found #{current_path}/.bundle/config, running bundle pristine.")
|
122
|
+
set :bundle_gemfile, -> { current_path.join('Gemfile') }
|
123
|
+
execute(:bundle, :pristine)
|
124
|
+
else
|
125
|
+
raise Capistrano::ValidationError,
|
126
|
+
"Unable to find #{current_path}/.bundle/config, won't run bundle pristine."
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
desc 'Set the old ruby version before the change and invoke bundle pristine.'
|
133
|
+
task :broken_gems_warning do
|
134
|
+
on roles fetch(:rbenv_roles, :all) do |host|
|
135
|
+
if fetch(:ruby_modified, false)
|
136
|
+
warn('Deploy failed and the ruby version has been modified in this deploy.')
|
137
|
+
warn('If this was a minor ruby version upgrade your running application may run into issues with native gem extensions.')
|
138
|
+
warn("If your deploy failed before deploy:symlink:release you may run bundle exec 'cap #{fetch(:stage)} opscomplete:ruby:reset'.")
|
139
|
+
warn('Please refer https://makandracards.com/makandra/477884-bundler-in-deploy-mode-shares-gems-between-patch-level-ruby-versions')
|
140
|
+
else
|
141
|
+
debug("#{host}: Ruby not modified in current deploy.")
|
142
|
+
end
|
143
|
+
end
|
115
144
|
end
|
116
145
|
end
|
117
146
|
end
|
@@ -36,7 +36,7 @@ namespace :opscomplete do
|
|
36
36
|
# on roles :cron do
|
37
37
|
# # The TSTP signal tells sidekiq to quiet all workers.
|
38
38
|
# # see: https://github.com/mperham/sidekiq/wiki/Signals#tstp
|
39
|
-
# invoke('supervisor:signal_procs', 'TSTP', 'sidekiq')
|
39
|
+
# invoke('opscomplete:supervisor:signal_procs', 'TSTP', 'sidekiq')
|
40
40
|
# end
|
41
41
|
# end
|
42
42
|
# end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-opscomplete
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Makandra Operations
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: makandra-rubocop
|
@@ -89,8 +89,11 @@ files:
|
|
89
89
|
- bin/console
|
90
90
|
- bin/setup
|
91
91
|
- capistrano-opscomplete.gemspec
|
92
|
+
- lib/capistrano-opscomplete.rb
|
92
93
|
- lib/capistrano/dsl/opscomplete.rb
|
93
94
|
- lib/capistrano/opscomplete.rb
|
95
|
+
- lib/capistrano/opscomplete/hooks.rb
|
96
|
+
- lib/capistrano/opscomplete/nodejs.rake
|
94
97
|
- lib/capistrano/opscomplete/ruby.rake
|
95
98
|
- lib/capistrano/opscomplete/supervisor.rake
|
96
99
|
- lib/capistrano/opscomplete/version.rb
|