immosquare-capistrano 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/immosquare/capistrano/defaults.rb +5 -0
- data/lib/immosquare/capistrano/helpers.rb +24 -0
- data/lib/immosquare/capistrano/solid_queue.rb +9 -0
- data/lib/immosquare/capistrano/tasks/solid_queue.rake +80 -0
- data/lib/immosquare/capistrano/templates/solid_queue.service.erb +25 -0
- data/lib/immosquare-capistrano/version.rb +3 -0
- data/lib/immosquare-capistrano.rb +0 -0
- metadata +64 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fd4a36233e060600fceaf3284d69e888a1cc2e878f0f2989e2ee84133b109dbc
|
4
|
+
data.tar.gz: 86d11c5ff55f124e30e032983c87473beb5cde9026f89870b1bd7a812d2583be
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 14f0e82c609fc01e275979e552bb43ff5c59c87162cb036968b53796e44c3197f69f41f0217545108b3fbf7923e9a05715e09d94e7715338cdf5832ebffd9df7
|
7
|
+
data.tar.gz: 391981483ca9e86340f7386805b46058e3ac06feafd20a63db3dc8dc4d9649a644288e68df52fd87d999acaa640bf68125adc804fbbb60ecb76d22fda9af3659
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Capistrano
|
2
|
+
module SolidQueue
|
3
|
+
module Helpers
|
4
|
+
##============================================================##
|
5
|
+
## Get the path to bundle command
|
6
|
+
##============================================================##
|
7
|
+
def self.expanded_bundle_command
|
8
|
+
SSHKit.config.command_map[:bundle].to_s
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.template_path(service)
|
12
|
+
"#{File.dirname(__FILE__)}/templates/#{service}.service.erb"
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.service_name
|
16
|
+
"#{fetch(:solid_queue_service_unit_name)}.service"
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.result_path
|
20
|
+
"#{fetch(:tmp_dir)}/#{service_name}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require_relative "defaults"
|
2
|
+
require_relative "helpers"
|
3
|
+
|
4
|
+
load File.expand_path("tasks/solid_queue.rake", __dir__)
|
5
|
+
|
6
|
+
# SolidQueue hooks
|
7
|
+
after "deploy:starting", "solid_queue:stop"
|
8
|
+
after "deploy:published", "solid_queue:start"
|
9
|
+
after "deploy:failed", "solid_queue:restart"
|
@@ -0,0 +1,80 @@
|
|
1
|
+
|
2
|
+
namespace :solid_queue do
|
3
|
+
##============================================================##
|
4
|
+
## Install SolidQueue service
|
5
|
+
##============================================================##
|
6
|
+
desc "Install SolidQueue service"
|
7
|
+
task :install do
|
8
|
+
on roles(:app) do
|
9
|
+
template_path = File.read(Capistrano::SolidQueue::Helpers.template_path("solid_queue"))
|
10
|
+
result = ERB.new(template_path).result(binding)
|
11
|
+
result_path = Capistrano::SolidQueue::Helpers.result_path
|
12
|
+
|
13
|
+
##============================================================##
|
14
|
+
## Upload the service file to the server
|
15
|
+
##============================================================##
|
16
|
+
upload!(StringIO.new(result), result_path)
|
17
|
+
|
18
|
+
##============================================================##
|
19
|
+
## Move the service file to the systemd directory
|
20
|
+
##============================================================##
|
21
|
+
sudo "mv #{result_path} /etc/systemd/system/#{Capistrano::SolidQueue::Helpers.service_name}"
|
22
|
+
|
23
|
+
##============================================================##
|
24
|
+
## Reload the systemd daemon and quiet the service
|
25
|
+
##============================================================##
|
26
|
+
sudo "systemctl daemon-reload"
|
27
|
+
sudo "systemctl enable #{Capistrano::SolidQueue::Helpers.service_name}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
##============================================================##
|
32
|
+
## Uninstall SolidQueue service
|
33
|
+
##============================================================##
|
34
|
+
desc "Uninstall SolidQueue service"
|
35
|
+
task :uninstall do
|
36
|
+
on roles(:app) do
|
37
|
+
service_name = Capistrano::SolidQueue::Helpers.service_name
|
38
|
+
|
39
|
+
if test("systemctl list-units --full -all | grep -Fq '#{service_name}'")
|
40
|
+
sudo("systemctl stop #{service_name}")
|
41
|
+
sudo("systemctl disable #{service_name}")
|
42
|
+
sudo("rm -f /etc/systemd/system/#{service_name}")
|
43
|
+
sudo("systemctl daemon-reload")
|
44
|
+
else
|
45
|
+
info("Service #{service_name} does not exist and does not need to be disabled.")
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
##============================================================##
|
52
|
+
## Start solid_queue
|
53
|
+
##============================================================##
|
54
|
+
desc "Start solid_queue"
|
55
|
+
task :start do
|
56
|
+
on roles(:app) do
|
57
|
+
sudo "systemctl start #{Capistrano::SolidQueue::Helpers.service_name}"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
##============================================================##
|
62
|
+
## Stop solid_queue (force immediate termination)
|
63
|
+
##============================================================##
|
64
|
+
desc "Stop solid_queue (force immediate termination)"
|
65
|
+
task :stop do
|
66
|
+
on roles(:app) do
|
67
|
+
sudo "systemctl stop #{Capistrano::SolidQueue::Helpers.service_name}"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
##============================================================##
|
72
|
+
## Restart solid_queue
|
73
|
+
##============================================================##
|
74
|
+
desc "Restart solid_queue"
|
75
|
+
task :restart do
|
76
|
+
on roles(:app) do
|
77
|
+
sudo "systemctl restart #{Capistrano::SolidQueue::Helpers.service_name}"
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
[Unit]
|
2
|
+
Description=SolidQueue for <%= "#{fetch(:application)} (#{fetch(:stage)})" %>
|
3
|
+
After=syslog.target network.target
|
4
|
+
|
5
|
+
[Service]
|
6
|
+
Type=simple
|
7
|
+
Environment=RAILS_ENV=<%= fetch(:stage) %>
|
8
|
+
User=<%= fetch(:solid_queue_user) %>
|
9
|
+
WorkingDirectory=<%= current_path %>
|
10
|
+
|
11
|
+
ExecStart=<%= Capistrano::SolidQueue::Helpers.expanded_bundle_command %> exec rake solid_queue:start
|
12
|
+
ExecReload=/bin/kill -HUP $MAINPID
|
13
|
+
ExecStop=/bin/kill -TERM $MAINPID
|
14
|
+
|
15
|
+
|
16
|
+
StandardOutput=append:<%= shared_path %>/log/solidqueue_access.log
|
17
|
+
StandardError=append:<%= shared_path %>/log/solidqueue_error.log
|
18
|
+
|
19
|
+
RestartSec=1
|
20
|
+
Restart=on-failure
|
21
|
+
|
22
|
+
SyslogIdentifier=<%= fetch(:solid_queue_service_unit_name) %>
|
23
|
+
|
24
|
+
[Install]
|
25
|
+
WantedBy=multi-user.target
|
File without changes
|
metadata
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: immosquare-capistrano
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- IMMO SQUARE
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-04-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: capistrano
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.0'
|
27
|
+
description: Puma, Sidekiq & SolidQueue services integrations for Capistrano
|
28
|
+
email:
|
29
|
+
- jules@immosquare.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- lib/immosquare-capistrano.rb
|
35
|
+
- lib/immosquare-capistrano/version.rb
|
36
|
+
- lib/immosquare/capistrano/defaults.rb
|
37
|
+
- lib/immosquare/capistrano/helpers.rb
|
38
|
+
- lib/immosquare/capistrano/solid_queue.rb
|
39
|
+
- lib/immosquare/capistrano/tasks/solid_queue.rake
|
40
|
+
- lib/immosquare/capistrano/templates/solid_queue.service.erb
|
41
|
+
homepage: https://github.com/IMMOSQUARE/immosquare-capistrano
|
42
|
+
licenses:
|
43
|
+
- MIT
|
44
|
+
metadata: {}
|
45
|
+
post_install_message:
|
46
|
+
rdoc_options: []
|
47
|
+
require_paths:
|
48
|
+
- lib
|
49
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 2.7.2
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0'
|
59
|
+
requirements: []
|
60
|
+
rubygems_version: 3.5.7
|
61
|
+
signing_key:
|
62
|
+
specification_version: 4
|
63
|
+
summary: Puma, Sidekiq & SolidQueue services integrations for Capistrano
|
64
|
+
test_files: []
|