go-deploy 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/lib/go_deploy/console.rb +2 -2
- data/lib/go_deploy/deploy.rb +43 -22
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22417099867eb15aa41105057edb556f0432097f6895efcaf17145db8d6c5823
|
4
|
+
data.tar.gz: e7b8ee57f98af129a7fd195e7bd9c21a72e53604dfc8a6174fc4f43312b7a5fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de3be640d4dbaca465d639045c1ca589d263951c87ed0b00ea5d86dffdfc159324f511af7ad368c2b860214f7fc0da5b2157f6852fe1bba6ab4b959bccbfd87c
|
7
|
+
data.tar.gz: bf4d50df18a2284759181afabcaa5e3b5646445cb127552d5f6fd9a88baae35932d37e517ebbc9420e48673ed7bb5b7ca4da895b9d6c77360afd224c20b86627
|
data/lib/go_deploy/console.rb
CHANGED
@@ -30,7 +30,7 @@ module GoDeploy
|
|
30
30
|
results.all?
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
33
|
+
def sudo_exec(ssh:, command:, is_show_color: true)
|
34
34
|
ssh.open_channel do |channel|
|
35
35
|
channel.request_pty do |_c, success|
|
36
36
|
raise 'Could not request pty' unless success
|
@@ -39,7 +39,7 @@ module GoDeploy
|
|
39
39
|
channel.on_data do |_c, cmd|
|
40
40
|
log(command: cmd, is_show_remote_name: false) if is_show_color
|
41
41
|
|
42
|
-
channel.send_data "#{password}\n" if cmd[/\[sudo\]|Password/i]
|
42
|
+
channel.send_data "#{@config['password']}\n" if cmd[/\[sudo\]|Password/i]
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
data/lib/go_deploy/deploy.rb
CHANGED
@@ -15,17 +15,48 @@ module GoDeploy
|
|
15
15
|
def initialize
|
16
16
|
super
|
17
17
|
begin
|
18
|
-
|
19
|
-
|
20
|
-
@
|
18
|
+
error_message = 'Please specify an order e.g.go-deploy production deploy or go-deploy production logs'
|
19
|
+
@file_name = ARGV[0]
|
20
|
+
@action = ARGV[1]
|
21
|
+
puts error_message.red and exit if @file_name.nil? && @action.nil?
|
22
|
+
|
23
|
+
yaml_file = File.join(Dir.pwd, "#{@file_name}.yaml")
|
24
|
+
|
25
|
+
self.config = YAML.load_file(yaml_file)
|
26
|
+
@console = Console.new(config)
|
21
27
|
@service = config['service']
|
22
28
|
rescue StandardError => e
|
23
29
|
puts e.message.red
|
24
|
-
|
30
|
+
exit
|
25
31
|
end
|
26
32
|
end
|
27
33
|
|
28
34
|
def run
|
35
|
+
case @action.upcase
|
36
|
+
when 'DEPLOY'
|
37
|
+
deploy_go
|
38
|
+
when 'LOGS'
|
39
|
+
logs
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def ssh
|
46
|
+
return @ssh if defined? @ssh
|
47
|
+
|
48
|
+
@ssh = Net::SSH.start(config['host'], config['user'], ssh_options)
|
49
|
+
end
|
50
|
+
|
51
|
+
def ssh_options
|
52
|
+
{
|
53
|
+
keys: [config['passphrase']],
|
54
|
+
forward_agent: true,
|
55
|
+
paranoid: true
|
56
|
+
}
|
57
|
+
end
|
58
|
+
|
59
|
+
def deploy_go
|
29
60
|
# Step 1
|
30
61
|
wrapper
|
31
62
|
# Step 2
|
@@ -41,23 +72,12 @@ module GoDeploy
|
|
41
72
|
# Stop 7
|
42
73
|
remove_files
|
43
74
|
# Stop 8
|
44
|
-
start_go_service
|
45
|
-
end
|
46
|
-
|
47
|
-
private
|
48
|
-
|
49
|
-
def ssh
|
50
|
-
return @ssh if defined? @ssh
|
51
|
-
|
52
|
-
@ssh = Net::SSH.start(config['host'], config['user'], ssh_options)
|
75
|
+
start_go_service if @is_restart
|
53
76
|
end
|
54
77
|
|
55
|
-
def
|
56
|
-
|
57
|
-
|
58
|
-
forward_agent: true,
|
59
|
-
paranoid: true
|
60
|
-
}
|
78
|
+
def logs
|
79
|
+
@service_name = @service['name']
|
80
|
+
@console.sudo_exec(ssh: ssh, command: "sudo journalctl -u #{@service_name}.service -f", is_show_color: false)
|
61
81
|
end
|
62
82
|
|
63
83
|
def wrapper
|
@@ -102,8 +122,9 @@ module GoDeploy
|
|
102
122
|
|
103
123
|
def stop_go_service_and_copy_files
|
104
124
|
@service_name = @service['name']
|
105
|
-
|
106
|
-
|
125
|
+
@is_restart = @service['is_restart']
|
126
|
+
puts "Step 6 systemctl:stop:#{@service_name}".green if @is_restart
|
127
|
+
@console.sudo_exec(ssh: ssh, command: "sudo systemctl stop #{@service_name}.service")
|
107
128
|
@console.exec(ssh: ssh, command: "cd #{@deploy_to}/repo && mv #{@env_file} #{@deploy_to}")
|
108
129
|
|
109
130
|
@service['copy_files'].each do |file_name|
|
@@ -123,7 +144,7 @@ module GoDeploy
|
|
123
144
|
|
124
145
|
def start_go_service
|
125
146
|
puts "Step 8 systemctl:start#{@service_name}".green
|
126
|
-
@console.
|
147
|
+
@console.sudo_exec(ssh: ssh, command: "sudo systemctl start #{@service_name}.service")
|
127
148
|
end
|
128
149
|
end
|
129
150
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: go-deploy
|
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
|
- Saharak Manoo
|
@@ -79,7 +79,7 @@ files:
|
|
79
79
|
- lib/go_deploy/console.rb
|
80
80
|
- lib/go_deploy/deploy.rb
|
81
81
|
- lib/go_deploy/string.rb
|
82
|
-
homepage:
|
82
|
+
homepage: https://rubygems.org/gems/go-deploy
|
83
83
|
licenses:
|
84
84
|
- MIT
|
85
85
|
metadata: {}
|