dogids-cli 0.0.27 → 0.0.28

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bb9ca37428031dab4d21924eb4bbc3e5568cb334
4
- data.tar.gz: c0c53d7eb178553500ffd155086fc950f27aa3d5
3
+ metadata.gz: f743e46965fa916cc7f6557dac0b012d6e291072
4
+ data.tar.gz: 2e0476139077a7e00c0a20f89507c110294baa58
5
5
  SHA512:
6
- metadata.gz: 85ac574cb597b18f263da43af5903807b55796fc99b5b4685e81f573d222624cda0817c088e2801c78485006dd137ed41ab9c737277b4e3dc77df0c8ebab4dcd
7
- data.tar.gz: 87e3168b541c9bf30aded06c72d44cb0b4880ee7228f49478359b489a3c2a2adaa840f628448a0841d7a3d3b283aa8bbb83f958c795a7b19296d5cc2102284ac
6
+ metadata.gz: ffeb21a0433b7ea13f4d9c9d1fd32a2d416dd4aab8c47ee791309271146d27adc7c42bf5f14e8c15a65018b90a51c648c79c38a0d2b944235fbbe9fcc6f4d662
7
+ data.tar.gz: 6f5a87c2d58e0ca6cd0150c7ec211e06c31fadf258e245ff04d415f3e0073c6fd1710ae2bd635317318a10e27fbf308825a460fd450fe6316e32aeb17aa00a50
data/.gitignore CHANGED
@@ -2,3 +2,4 @@
2
2
  results.html
3
3
  pkg
4
4
  html
5
+ *.gem
data/lib/dogids/deploy.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  require "thor"
2
+ require_relative "deploy/backend"
2
3
  require_relative "deploy/staging"
4
+ require_relative "deploy/testing"
3
5
  require_relative "deploy/web"
4
6
  require_relative "deploy/worker"
5
7
 
@@ -11,7 +13,9 @@ module Dogids
11
13
  return self.send(deploy_command) if self.respond_to?(deploy_command)
12
14
 
13
15
  puts "Deployment Commands:"
16
+ puts " dogids deploy backend # Deploy the new backend"
14
17
  puts " dogids deploy staging # Deploy the staging.dogids.com storefront"
18
+ puts " dogids deploy testing # Deploy the new backend to testing"
15
19
  puts " dogids deploy web # Deploy the dogids.com storefront"
16
20
  puts " dogids deploy worker # Deploy the dogids-backgrounder app"
17
21
  puts " "
@@ -0,0 +1,79 @@
1
+ require "net/ssh"
2
+ require "thor"
3
+
4
+ module Dogids
5
+ class Cli < Thor
6
+ no_commands do
7
+ def deploy_backend
8
+ print_heading("Deploying backend to admin.dogids.com")
9
+
10
+ server_addresses = [
11
+ "admin"
12
+ ]
13
+
14
+ server_addresses.each do |server_address|
15
+ ssh_address = get_config_url("production","#{server_address}")
16
+ next if ssh_address == false
17
+
18
+ print_command("Server(#{server_address}): #{ssh_address}")
19
+
20
+ Net::SSH.start(ssh_address, "dogids") do |ssh|
21
+ print_command("Checking the current git status")
22
+ ssh.exec!(backend_git_status_command) do |_channel, _stream, data|
23
+ print_command(data)
24
+ end
25
+
26
+ if yes?("-----> Continue with deployment? [no]")
27
+ print_command("Pulling latest from master")
28
+ ssh.exec!(backend_git_pull_command) do |_channel, _stream, data|
29
+ print_command(data)
30
+ end
31
+
32
+ ssh.exec!(backend_composer_commands) do |_channel, _stream, data|
33
+ print_command(data)
34
+ end
35
+
36
+ ssh.exec!(backend_deployment_commands) do |_channel, _stream, data|
37
+ print_command(data)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ print_heading("Done.")
43
+ end
44
+ end
45
+
46
+ private
47
+
48
+ def backend_deployment_commands
49
+ commands = []
50
+ commands << "cd /home/dogids/apps/dogids-backend"
51
+ commands << "php artisan deploy --progress"
52
+ commands.join(" && ")
53
+ end
54
+
55
+ def backend_composer_commands
56
+ commands = []
57
+ commands << "cd /home/dogids/apps/dogids-backend"
58
+ commands << "composer install --no-dev --optimize-autoloader"
59
+ commands.join(" && ")
60
+ end
61
+
62
+ def backend_git_pull_command(branch = "master")
63
+ commands = []
64
+ commands << "cd /home/dogids/apps/dogids-backend"
65
+ commands << "git fetch origin #{branch}"
66
+ commands << "git checkout #{branch}"
67
+ commands << "git pull origin #{branch}"
68
+ commands.join(" && ")
69
+ end
70
+
71
+ def backend_git_status_command
72
+ commands = []
73
+ commands << "cd /home/dogids/apps/dogids-backend"
74
+ commands << "git status -s"
75
+ commands.join(" && ")
76
+ end
77
+
78
+ end
79
+ end
@@ -0,0 +1,57 @@
1
+ require "net/ssh"
2
+ require "thor"
3
+
4
+ module Dogids
5
+ class Cli < Thor
6
+ no_commands do
7
+ def deploy_testing
8
+ print_heading("Deploying backend to testing.dogids.com")
9
+
10
+ server_addresses = [
11
+ "testing"
12
+ ]
13
+
14
+ server_addresses.each do |server_address|
15
+ ssh_address = get_config_url("staging","#{server_address}")
16
+ next if ssh_address == false
17
+
18
+ print_command("Server(#{server_address}): #{ssh_address}")
19
+
20
+ Net::SSH.start(ssh_address, "dogids") do |ssh|
21
+ print_command("Checking the current git status")
22
+ ssh.exec!(backend_git_status_command) do |_channel, _stream, data|
23
+ print_command(data)
24
+ end
25
+
26
+ current_branch = ssh.exec!("cd /home/dogids/apps/dogids-backend && git rev-parse --abbrev-ref HEAD").strip
27
+ print_heading("Current Branch: #{current_branch}")
28
+
29
+ branch = ask("-----> Which branch would you like to deploy? [#{current_branch}]").strip
30
+
31
+ break print_command("Fine, be that way.") if branch.downcase == "cancel"
32
+
33
+ branch = current_branch if branch.length == 0
34
+
35
+ print_command("Pulling latest from #{branch}")
36
+ ssh.exec!(backend_git_pull_command(branch)) do |_channel, _stream, data|
37
+ print_command(data)
38
+ end
39
+
40
+ ssh.exec!(backend_composer_commands) do |_channel, _stream, data|
41
+ print_command(data)
42
+ end
43
+
44
+ ssh.exec!(backend_deployment_commands) do |_channel, _stream, data|
45
+ print_command(data)
46
+ end
47
+ end
48
+ end
49
+
50
+ print_heading("Done.")
51
+ end
52
+ end
53
+
54
+ private
55
+
56
+ end
57
+ end
@@ -3,7 +3,7 @@ require "open-uri"
3
3
  require "thor"
4
4
 
5
5
  module Dogids
6
- VERSION = "0.0.27"
6
+ VERSION = "0.0.28"
7
7
 
8
8
  class Cli < Thor
9
9
  desc "update", "Update dogids-cli to latest version"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dogids-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.27
4
+ version: 0.0.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jaryd Krishnan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-15 00:00:00.000000000 Z
11
+ date: 2017-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-ssh
@@ -75,7 +75,9 @@ files:
75
75
  - lib/dogids/cache/staging.rb
76
76
  - lib/dogids/config.rb
77
77
  - lib/dogids/deploy.rb
78
+ - lib/dogids/deploy/backend.rb
78
79
  - lib/dogids/deploy/staging.rb
80
+ - lib/dogids/deploy/testing.rb
79
81
  - lib/dogids/deploy/web.rb
80
82
  - lib/dogids/deploy/worker.rb
81
83
  - lib/dogids/reload.rb