capistrano-sidekiq 1.0.0 → 1.0.1
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 +45 -36
- data/README.md +31 -0
- data/lib/capistrano/sidekiq/version.rb +1 -1
- data/lib/capistrano/tasks/monit.rake +2 -1
- data/lib/capistrano/tasks/sidekiq.rake +103 -37
- data/lib/generators/capistrano/sidekiq/systemd/templates/sidekiq.service.capistrano.erb +19 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26aff29f42bea923b68df1bb882bd0ae1a4289ee
|
4
|
+
data.tar.gz: b512116ee2722510550958339899136abb399958
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b8b90a8bfd058f771270b665bf6c76d43a99312f85ce64ffaf8e6ae01ce14e3f6029f1831f99cb9cf6df926df2ce4c9bade86ee6283a06b1093f9e426d0db05
|
7
|
+
data.tar.gz: 6ab3ce241dcc7d8c66ee5e017290187b7d8ed6afc8198c416262c5f3d48d17012d3d970db8a5f4a85773566ed009b0924618a3b28031903470bae19759e428f6
|
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,20 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 1.0.1
|
4
|
+
- Add deploy failure handling @phillbaker
|
5
|
+
- Support custom monit filename @zocoi
|
6
|
+
- Systemd Integration @baierjan
|
7
|
+
- Fix regression in sidekiq_roles variable
|
8
|
+
- Fixed pidfile accounting per process @jsantos
|
9
|
+
- Rubocop corrections for main task @jsantos
|
10
|
+
|
3
11
|
## 1.0.0
|
4
12
|
|
5
13
|
- Prepend underscore before service name index @Tensho
|
6
14
|
- Convert CHANGELOG to Markdown @Tensho
|
7
15
|
- Drop support for capistrano 2.0 @Tensho
|
8
16
|
- *BREAKING CHANGE* If people used custom monit template, they should adjust it to use pid_files variable instead of processes_pids. @Tensho
|
17
|
+
- *BREAKING CHANGE* `:sidekiq_role` has been renamed to its plural form, `:sidekiq_roles`
|
9
18
|
|
10
19
|
## 0.20.0
|
11
20
|
|
@@ -17,21 +26,21 @@
|
|
17
26
|
- `sidekiq:stop` task perpertually callable @Tensho
|
18
27
|
|
19
28
|
## 0.5.4
|
20
|
-
|
29
|
+
|
21
30
|
- Add support for custom count of processes per host in monit task @okoriko
|
22
|
-
|
31
|
+
|
23
32
|
## 0.5.3
|
24
|
-
|
33
|
+
|
25
34
|
- Custom count of processes per each host
|
26
|
-
|
35
|
+
|
27
36
|
## 0.5.0
|
28
|
-
|
37
|
+
|
29
38
|
- Multiple processes @mrsimo
|
30
|
-
|
39
|
+
|
31
40
|
## 0.3.9
|
32
|
-
|
41
|
+
|
33
42
|
- Restore daemon flag from Monit template
|
34
|
-
|
43
|
+
|
35
44
|
## 0.3.8
|
36
45
|
|
37
46
|
- Update monit template: use su instead of sudo / permit all Sidekiq options @bensie
|
@@ -43,59 +52,59 @@
|
|
43
52
|
- Run Sidekiq as daemon from Monit @dpaluy
|
44
53
|
|
45
54
|
## 0.3.5
|
46
|
-
|
55
|
+
|
47
56
|
- Added `:sidekiq_tag` for capistrano 2 @OscarBarrett
|
48
|
-
|
57
|
+
|
49
58
|
## 0.3.4
|
50
|
-
|
59
|
+
|
51
60
|
- Fix bug in `sidekiq:start` for capistrano 2 task
|
52
|
-
|
61
|
+
|
53
62
|
## 0.3.3
|
54
|
-
|
63
|
+
|
55
64
|
- `sidekiq:restart` after `deploy:restart` added to default hooks
|
56
|
-
|
65
|
+
|
57
66
|
## 0.3.2
|
58
|
-
|
67
|
+
|
59
68
|
- `:sidekiq_queue` accept an array
|
60
|
-
|
69
|
+
|
61
70
|
## 0.3.1
|
62
|
-
|
71
|
+
|
63
72
|
- Fix logs @rottman
|
64
73
|
- Add concurrency option support @ungsophy
|
65
|
-
|
74
|
+
|
66
75
|
## 0.3.0
|
67
|
-
|
76
|
+
|
68
77
|
- Fix monit task @andreygerasimchuk
|
69
|
-
|
78
|
+
|
70
79
|
## 0.2.9
|
71
|
-
|
80
|
+
|
72
81
|
- Check if current directory exist @alexdunae
|
73
|
-
|
82
|
+
|
74
83
|
## 0.2.8
|
75
|
-
|
84
|
+
|
76
85
|
- Added `:sidekiq_queue` & `:sidekiq_config`
|
77
|
-
|
86
|
+
|
78
87
|
## 0.2.7
|
79
|
-
|
88
|
+
|
80
89
|
- Signal usage @penso
|
81
|
-
|
90
|
+
|
82
91
|
## 0.2.6
|
83
|
-
|
92
|
+
|
84
93
|
- `sidekiq:start` check if sidekiq is running
|
85
|
-
|
94
|
+
|
86
95
|
## 0.2.5
|
87
|
-
|
96
|
+
|
88
97
|
- Bug fixes
|
89
|
-
|
98
|
+
|
90
99
|
## 0.2.4
|
91
|
-
|
100
|
+
|
92
101
|
- Fast deploy with `:sidekiq_run_in_background`
|
93
|
-
|
102
|
+
|
94
103
|
## 0.2.3
|
95
|
-
|
104
|
+
|
96
105
|
- Added monit tasks (alpha)
|
97
|
-
|
106
|
+
|
98
107
|
## 0.2.0
|
99
|
-
|
108
|
+
|
100
109
|
- Added `sidekiq:rolling_restart` @jlecour
|
101
|
-
|
110
|
+
|
data/README.md
CHANGED
@@ -59,11 +59,22 @@ Configurable options, shown here with defaults:
|
|
59
59
|
:sidekiq_user => nil #user to run sidekiq as
|
60
60
|
```
|
61
61
|
|
62
|
+
## Known issues with Capistrano 3
|
63
|
+
|
62
64
|
There is a known bug that prevents sidekiq from starting when pty is true on Capistrano 3.
|
63
65
|
```ruby
|
64
66
|
set :pty, false
|
65
67
|
```
|
66
68
|
|
69
|
+
## Bundler
|
70
|
+
|
71
|
+
If you'd like to prepend `bundle exec` to your sidekiq and sidekiqctl calls, modify the SSHKit command maps
|
72
|
+
in your deploy.rb file:
|
73
|
+
```ruby
|
74
|
+
SSHKit.config.command_map[:sidekiq] = "bundle exec sidekiq"
|
75
|
+
SSHKit.config.command_map[:sidekiqctl] = "bundle exec sidekiqctl"
|
76
|
+
```
|
77
|
+
|
67
78
|
## Multiple processes
|
68
79
|
|
69
80
|
You can configure sidekiq to start with multiple processes. Just set the proper amount in `sidekiq_processes`.
|
@@ -89,6 +100,26 @@ server 'example-small.com', roles: [:sidekiq_small]
|
|
89
100
|
server 'example-big.com', roles: [:sidekiq_big]
|
90
101
|
```
|
91
102
|
|
103
|
+
## Integration with systemd
|
104
|
+
|
105
|
+
Set init system to systemd in the cap deploy config:
|
106
|
+
|
107
|
+
```ruby
|
108
|
+
set :init_system, :systemd
|
109
|
+
```
|
110
|
+
|
111
|
+
Install systemd.service template file and enable the service with:
|
112
|
+
|
113
|
+
```
|
114
|
+
bundle exec cap sidekiq:install
|
115
|
+
```
|
116
|
+
|
117
|
+
Default name for the service file is `sidekiq-stage.service`. This can be changed as needed, for example:
|
118
|
+
|
119
|
+
```ruby
|
120
|
+
set :service_unit_name, "sidekiq-#{fetch(:application)}-#{fetch(:stage)}.service"
|
121
|
+
```
|
122
|
+
|
92
123
|
## Customizing the monit sidekiq templates
|
93
124
|
|
94
125
|
If you need change some config in redactor, you can
|
@@ -1,6 +1,7 @@
|
|
1
1
|
namespace :load do
|
2
2
|
task :defaults do
|
3
3
|
set :sidekiq_monit_conf_dir, '/etc/monit/conf.d'
|
4
|
+
set :sidekiq_monit_conf_file, "#{sidekiq_service_name}.conf"
|
4
5
|
set :sidekiq_monit_use_sudo, true
|
5
6
|
set :monit_bin, '/usr/bin/monit'
|
6
7
|
set :sidekiq_monit_default_hooks, true
|
@@ -31,7 +32,7 @@ namespace :sidekiq do
|
|
31
32
|
@role = role
|
32
33
|
upload_sidekiq_template 'sidekiq_monit', "#{fetch(:tmp_dir)}/monit.conf", @role
|
33
34
|
|
34
|
-
mv_command = "mv #{fetch(:tmp_dir)}/monit.conf #{fetch(:sidekiq_monit_conf_dir)}/#{
|
35
|
+
mv_command = "mv #{fetch(:tmp_dir)}/monit.conf #{fetch(:sidekiq_monit_conf_dir)}/#{fetch(:sidekiq_monit_conf_file)}"
|
35
36
|
sudo_if_needed mv_command
|
36
37
|
|
37
38
|
sudo_if_needed "#{fetch(:monit_bin)} reload"
|
@@ -6,16 +6,20 @@ namespace :load do
|
|
6
6
|
set :sidekiq_env, -> { fetch(:rack_env, fetch(:rails_env, fetch(:stage))) }
|
7
7
|
set :sidekiq_log, -> { File.join(shared_path, 'log', 'sidekiq.log') }
|
8
8
|
set :sidekiq_timeout, 10
|
9
|
-
set :sidekiq_roles, :app
|
9
|
+
set :sidekiq_roles, fetch(:sidekiq_role, :app)
|
10
10
|
set :sidekiq_processes, 1
|
11
11
|
set :sidekiq_options_per_process, nil
|
12
12
|
set :sidekiq_user, nil
|
13
13
|
# Rbenv, Chruby, and RVM integration
|
14
|
-
set :rbenv_map_bins, fetch(:rbenv_map_bins).to_a.concat(%w
|
15
|
-
set :rvm_map_bins, fetch(:rvm_map_bins).to_a.concat(%w
|
16
|
-
set :chruby_map_bins, fetch(:chruby_map_bins).to_a.concat(%w
|
14
|
+
set :rbenv_map_bins, fetch(:rbenv_map_bins).to_a.concat(%w[sidekiq sidekiqctl])
|
15
|
+
set :rvm_map_bins, fetch(:rvm_map_bins).to_a.concat(%w[sidekiq sidekiqctl])
|
16
|
+
set :chruby_map_bins, fetch(:chruby_map_bins).to_a.concat(%w[sidekiq sidekiqctl])
|
17
17
|
# Bundler integration
|
18
|
-
set :bundle_bins, fetch(:bundle_bins).to_a.concat(%w
|
18
|
+
set :bundle_bins, fetch(:bundle_bins).to_a.concat(%w[sidekiq sidekiqctl])
|
19
|
+
# Init system integration
|
20
|
+
set :init_system, -> { nil }
|
21
|
+
# systemd integration
|
22
|
+
set :service_unit_name, "sidekiq-#{fetch(:stage)}.service"
|
19
23
|
end
|
20
24
|
end
|
21
25
|
|
@@ -26,6 +30,9 @@ namespace :deploy do
|
|
26
30
|
after :publishing, :restart_sidekiq do
|
27
31
|
invoke 'sidekiq:restart' if fetch(:sidekiq_default_hooks)
|
28
32
|
end
|
33
|
+
after :failed, :restart_sidekiq do
|
34
|
+
invoke 'sidekiq:restart' if fetch(:sidekiq_default_hooks)
|
35
|
+
end
|
29
36
|
end
|
30
37
|
|
31
38
|
namespace :sidekiq do
|
@@ -40,10 +47,15 @@ namespace :sidekiq do
|
|
40
47
|
task :quiet do
|
41
48
|
on roles fetch(:sidekiq_roles) do |role|
|
42
49
|
switch_user(role) do
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
50
|
+
case fetch(:init_system)
|
51
|
+
when :systemd
|
52
|
+
execute :systemctl, "--user", "reload", fetch(:service_unit_name), raise_on_non_zero_exit: false
|
53
|
+
else
|
54
|
+
if test("[ -d #{release_path} ]")
|
55
|
+
each_process_with_index(reverse: true) do |pid_file, _idx|
|
56
|
+
if pid_file_exists?(pid_file) && process_exists?(pid_file)
|
57
|
+
quiet_sidekiq(pid_file)
|
58
|
+
end
|
47
59
|
end
|
48
60
|
end
|
49
61
|
end
|
@@ -55,10 +67,15 @@ namespace :sidekiq do
|
|
55
67
|
task :stop do
|
56
68
|
on roles fetch(:sidekiq_roles) do |role|
|
57
69
|
switch_user(role) do
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
70
|
+
case fetch(:init_system)
|
71
|
+
when :systemd
|
72
|
+
execute :systemctl, "--user", "stop", fetch(:service_unit_name)
|
73
|
+
else
|
74
|
+
if test("[ -d #{release_path} ]")
|
75
|
+
each_process_with_index(reverse: true) do |pid_file, _idx|
|
76
|
+
if pid_file_exists?(pid_file) && process_exists?(pid_file)
|
77
|
+
stop_sidekiq(pid_file)
|
78
|
+
end
|
62
79
|
end
|
63
80
|
end
|
64
81
|
end
|
@@ -70,9 +87,14 @@ namespace :sidekiq do
|
|
70
87
|
task :start do
|
71
88
|
on roles fetch(:sidekiq_roles) do |role|
|
72
89
|
switch_user(role) do
|
73
|
-
|
74
|
-
|
75
|
-
|
90
|
+
case fetch(:init_system)
|
91
|
+
when :systemd
|
92
|
+
execute :systemctl, '--user', 'start', fetch(:service_unit_name)
|
93
|
+
else
|
94
|
+
each_process_with_index do |pid_file, idx|
|
95
|
+
unless pid_file_exists?(pid_file) && process_exists?(pid_file)
|
96
|
+
start_sidekiq(pid_file, idx)
|
97
|
+
end
|
76
98
|
end
|
77
99
|
end
|
78
100
|
end
|
@@ -89,7 +111,7 @@ namespace :sidekiq do
|
|
89
111
|
task :rolling_restart do
|
90
112
|
on roles fetch(:sidekiq_roles) do |role|
|
91
113
|
switch_user(role) do
|
92
|
-
each_process_with_index(true) do |pid_file, idx|
|
114
|
+
each_process_with_index(reverse: true) do |pid_file, idx|
|
93
115
|
if pid_file_exists?(pid_file) && process_exists?(pid_file)
|
94
116
|
stop_sidekiq(pid_file)
|
95
117
|
end
|
@@ -103,11 +125,10 @@ namespace :sidekiq do
|
|
103
125
|
task :cleanup do
|
104
126
|
on roles fetch(:sidekiq_roles) do |role|
|
105
127
|
switch_user(role) do
|
106
|
-
each_process_with_index do |pid_file,
|
128
|
+
each_process_with_index do |pid_file, _idx|
|
107
129
|
unless process_exists?(pid_file)
|
108
|
-
|
109
|
-
|
110
|
-
end
|
130
|
+
next unless pid_file_exists?(pid_file)
|
131
|
+
execute "rm #{pid_file}"
|
111
132
|
end
|
112
133
|
end
|
113
134
|
end
|
@@ -121,26 +142,71 @@ namespace :sidekiq do
|
|
121
142
|
on roles fetch(:sidekiq_roles) do |role|
|
122
143
|
switch_user(role) do
|
123
144
|
each_process_with_index do |pid_file, idx|
|
124
|
-
unless pid_file_exists?(pid_file)
|
125
|
-
|
126
|
-
|
145
|
+
start_sidekiq(pid_file, idx) unless pid_file_exists?(pid_file)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
task :install do
|
152
|
+
on roles fetch(:sidekiq_roles) do |role|
|
153
|
+
switch_user(role) do
|
154
|
+
case fetch(:init_system)
|
155
|
+
when :systemd
|
156
|
+
create_systemd_template
|
157
|
+
execute :systemctl, "--user", "enable", fetch(:service_unit_name)
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
task :uninstall do
|
164
|
+
on roles fetch(:sidekiq_roles) do |role|
|
165
|
+
switch_user(role) do
|
166
|
+
case fetch(:init_system)
|
167
|
+
when :systemd
|
168
|
+
execute :systemctl, "--user", "disable", fetch(:service_unit_name)
|
169
|
+
execute :rm, File.join(fetch(:service_unit_path, fetch_systemd_unit_path),fetch(:service_unit_name))
|
127
170
|
end
|
128
171
|
end
|
129
172
|
end
|
130
173
|
end
|
131
174
|
|
132
175
|
def each_process_with_index(reverse: false)
|
133
|
-
|
134
|
-
|
135
|
-
|
176
|
+
pid_file_list = pid_files
|
177
|
+
pid_file_list.reverse! if reverse
|
178
|
+
pid_file_list.each_with_index do |pid_file, idx|
|
136
179
|
within release_path do
|
137
180
|
yield(pid_file, idx)
|
138
181
|
end
|
139
182
|
end
|
140
183
|
end
|
141
184
|
|
185
|
+
def fetch_systemd_unit_path
|
186
|
+
home_dir = capture :pwd
|
187
|
+
File.join(home_dir, ".config", "systemd", "user")
|
188
|
+
end
|
189
|
+
|
190
|
+
def create_systemd_template
|
191
|
+
search_paths = [
|
192
|
+
File.expand_path(
|
193
|
+
File.join(*%w[.. .. .. generators capistrano sidekiq systemd templates sidekiq.service.capistrano.erb]),
|
194
|
+
__FILE__
|
195
|
+
),
|
196
|
+
]
|
197
|
+
template_path = search_paths.detect {|path| File.file?(path)}
|
198
|
+
template = File.read(template_path)
|
199
|
+
systemd_path = fetch(:service_unit_path, fetch_systemd_unit_path)
|
200
|
+
execute :mkdir, "-p", systemd_path
|
201
|
+
upload!(
|
202
|
+
StringIO.new(ERB.new(template).result(binding)),
|
203
|
+
"#{systemd_path}/#{fetch :service_unit_name}"
|
204
|
+
)
|
205
|
+
execute :systemctl, "--user", "daemon-reload"
|
206
|
+
end
|
207
|
+
|
142
208
|
def pid_files
|
143
|
-
sidekiq_roles = Array(fetch(:sidekiq_roles))
|
209
|
+
sidekiq_roles = Array(fetch(:sidekiq_roles)).dup
|
144
210
|
sidekiq_roles.select! { |role| host.roles.include?(role) }
|
145
211
|
sidekiq_roles.flat_map do |role|
|
146
212
|
processes = fetch(:"#{ role }_processes") || fetch(:sidekiq_processes)
|
@@ -158,7 +224,7 @@ namespace :sidekiq do
|
|
158
224
|
|
159
225
|
def quiet_sidekiq(pid_file)
|
160
226
|
begin
|
161
|
-
execute :sidekiqctl, 'quiet',
|
227
|
+
execute :sidekiqctl, 'quiet', pid_file.to_s
|
162
228
|
rescue SSHKit::Command::Failed
|
163
229
|
# If gems are not installed (first deploy) and sidekiq_default_hooks is active
|
164
230
|
warn 'sidekiqctl not found (ignore if this is the first deploy)'
|
@@ -166,7 +232,7 @@ namespace :sidekiq do
|
|
166
232
|
end
|
167
233
|
|
168
234
|
def stop_sidekiq(pid_file)
|
169
|
-
execute :sidekiqctl, 'stop',
|
235
|
+
execute :sidekiqctl, 'stop', pid_file.to_s, fetch(:sidekiq_timeout)
|
170
236
|
end
|
171
237
|
|
172
238
|
def start_sidekiq(pid_file, idx = 0)
|
@@ -182,7 +248,7 @@ namespace :sidekiq do
|
|
182
248
|
end
|
183
249
|
args.push "--config #{fetch(:sidekiq_config)}" if fetch(:sidekiq_config)
|
184
250
|
args.push "--concurrency #{fetch(:sidekiq_concurrency)}" if fetch(:sidekiq_concurrency)
|
185
|
-
if process_options = fetch(:sidekiq_options_per_process)
|
251
|
+
if (process_options = fetch(:sidekiq_options_per_process))
|
186
252
|
args.push process_options[idx]
|
187
253
|
end
|
188
254
|
# use sidekiq_options for special options
|
@@ -198,13 +264,13 @@ namespace :sidekiq do
|
|
198
264
|
execute :sidekiq, args.compact.join(' ')
|
199
265
|
end
|
200
266
|
|
201
|
-
def switch_user(role
|
267
|
+
def switch_user(role)
|
202
268
|
su_user = sidekiq_user(role)
|
203
269
|
if su_user == role.user
|
204
|
-
|
270
|
+
yield
|
205
271
|
else
|
206
272
|
as su_user do
|
207
|
-
|
273
|
+
yield
|
208
274
|
end
|
209
275
|
end
|
210
276
|
end
|
@@ -212,8 +278,8 @@ namespace :sidekiq do
|
|
212
278
|
def sidekiq_user(role)
|
213
279
|
properties = role.properties
|
214
280
|
properties.fetch(:sidekiq_user) || # local property for sidekiq only
|
215
|
-
|
216
|
-
|
217
|
-
|
281
|
+
fetch(:sidekiq_user) ||
|
282
|
+
properties.fetch(:run_as) || # global property across multiple capistrano gems
|
283
|
+
role.user
|
218
284
|
end
|
219
285
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
[Unit]
|
2
|
+
Description=sidekiq for <%= "#{fetch(:application)} (#{fetch(:stage)})" %>
|
3
|
+
After=syslog.target network.target
|
4
|
+
|
5
|
+
[Service]
|
6
|
+
Type=simple
|
7
|
+
Environment=RAILS_ENV=<%= fetch(:rails_env) %>
|
8
|
+
WorkingDirectory=<%= fetch(:deploy_to) %>/current
|
9
|
+
ExecStart=<%= fetch(:bundler_path, '/usr/local/bin/bundler') %> exec sidekiq -e <%= fetch(:rails_env) %>
|
10
|
+
ExecReload=/bin/kill -TSTP $MAINPID
|
11
|
+
ExecStop=/bin/kill -TERM $MAINPID
|
12
|
+
|
13
|
+
RestartSec=1
|
14
|
+
Restart=on-failure
|
15
|
+
|
16
|
+
SyslogIdentifier=sidekiq
|
17
|
+
|
18
|
+
[Install]
|
19
|
+
WantedBy=default.target
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-sidekiq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abdelkader Boudih
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- lib/capistrano/tasks/sidekiq.rake
|
62
62
|
- lib/generators/capistrano/sidekiq/monit/template_generator.rb
|
63
63
|
- lib/generators/capistrano/sidekiq/monit/templates/sidekiq_monit.conf.erb
|
64
|
+
- lib/generators/capistrano/sidekiq/systemd/templates/sidekiq.service.capistrano.erb
|
64
65
|
homepage: https://github.com/seuros/capistrano-sidekiq
|
65
66
|
licenses:
|
66
67
|
- LGPL-3.0
|
@@ -81,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
82
|
version: '0'
|
82
83
|
requirements: []
|
83
84
|
rubyforge_project:
|
84
|
-
rubygems_version: 2.6.
|
85
|
+
rubygems_version: 2.6.14
|
85
86
|
signing_key:
|
86
87
|
specification_version: 4
|
87
88
|
summary: Sidekiq integration for Capistrano
|