baboon 1.0.0 → 1.0.5

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.
data/README.md CHANGED
@@ -87,6 +87,9 @@ This is coming very soon…
87
87
  #### 1.0.0
88
88
  Intial setup of the CLI and basic deploys are working.
89
89
 
90
+ #### 1.0.5
91
+ Multiple server deployments now work.
92
+
90
93
  ## How to contribute
91
94
 
92
95
  * Fork the project.
data/lib/baboon/cli.rb CHANGED
@@ -51,6 +51,8 @@ module Baboon
51
51
  if File.exists?("config/initializers/baboon.rb")
52
52
  @configuration = Util.read_configuration("config/initializers/baboon.rb")
53
53
 
54
+ # configure the servers
55
+
54
56
  Baboon.configure do |config|
55
57
  config.application = @configuration[:application]
56
58
  config.repository = @configuration[:repository]
@@ -58,7 +60,7 @@ module Baboon
58
60
  config.deploy_user = @configuration[:deploy_user]
59
61
  config.branch = @configuration[:branch]
60
62
  config.rails_env = @configuration[:rails_env]
61
- config.servers = @configuration[:servers]
63
+ config.servers = @configuration[:servers].gsub('[', '').gsub(']', '').split(',').collect(&:strip)
62
64
  end
63
65
  else
64
66
  #Error.stop("Baboon says there is no configuration file at: config/initializers/baboon.rb. Please run `rails g baboon:install`")
@@ -69,33 +71,41 @@ module Baboon
69
71
 
70
72
  desc "deploy", "Starts a real deploy to a server"
71
73
  def deploy
72
- printf @logger.format(" == Baboon starting deploy", "32", 1)
74
+ printf @logger.format("== Baboon starting deploy", "32", 1)
73
75
 
74
- # Essentially these are the instructions we need run for the Ubuntu 11.04
75
- instructions = [
76
- "cd #{Baboon.configuration.deploy_path} && bundle install",
77
- "cd #{Baboon.configuration.deploy_path} && git fetch",
78
- "cd #{Baboon.configuration.deploy_path} && git checkout #{Baboon.configuration.branch.to_s}",
79
- "cd #{Baboon.configuration.deploy_path} && git merge origin/#{Baboon.configuration.branch.to_s}",
80
- "cd #{Baboon.configuration.deploy_path} && touch tmp/restart.txt"
81
- ]
76
+ # Loop through each server and do deploy, we will add threading later to do simultaneous deploys
77
+ Baboon.configuration.servers.each do |server|
78
+ current = server.to_s.strip
79
+
80
+ printf @logger.format("== [#{current}]", "35", 1)
81
+
82
+ # Essentially these are the instructions we need run for the Ubuntu 11.04 for rails
83
+ # TODO: add lib of different instruction sets for Play framework, nodejs, etc
84
+ instructions = [
85
+ "cd '#{Baboon.configuration.deploy_path}' && bundle install --deployment",
86
+ "cd '#{Baboon.configuration.deploy_path}' && git fetch",
87
+ "cd '#{Baboon.configuration.deploy_path}' && git checkout #{Baboon.configuration.branch.to_s}",
88
+ "cd '#{Baboon.configuration.deploy_path}' && git merge origin/#{Baboon.configuration.branch.to_s}",
89
+ "cd '#{Baboon.configuration.deploy_path}' && touch tmp/restart.txt"
90
+ ]
82
91
 
83
- # Vars for connecting via ssh to the server
84
- credentials = {
85
- user: Baboon.configuration.deploy_user.to_s,
86
- host: 'ec2-50-19-131-228.compute-1.amazonaws.com'
87
- }
92
+ # Vars for connecting via ssh to the server
93
+ credentials = {
94
+ user: Baboon.configuration.deploy_user.to_s,
95
+ host: current
96
+ }
88
97
 
89
- Net::SSH.start(credentials[:host], credentials[:user]) do |session|
90
- instructions.each do |instruction|
91
- puts "instruction executing: #{instruction}"
92
- puts ""
93
- session.exec instruction
94
- session.loop
98
+ Net::SSH.start(credentials[:host], credentials[:user]) do |session|
99
+ instructions.each do |instruction|
100
+ puts "[#{current}]: #{instruction}"
101
+ puts ""
102
+ session.exec instruction
103
+ session.loop
104
+ end
95
105
  end
96
- end
106
+ end # Looping servers
97
107
 
98
- printf @logger.format(" == Baboon deploy Complete", "31", 1)
108
+ printf @logger.format("== Baboon deploy Complete", "31", 1)
99
109
  end
100
110
 
101
111
  desc "configuration", "Shows the current configuration for baboon"
@@ -108,6 +118,11 @@ module Baboon
108
118
  printf @logger.format("Baboon[Rails_env]: #{Baboon.configuration.rails_env}", "37", 1)
109
119
  printf @logger.format("Baboon[Servers]: #{Baboon.configuration.servers}", "37", 1)
110
120
  end
121
+
122
+ desc "servers", "Shows the current servers that will get deployed to"
123
+ def servers
124
+ printf @logger.format(Baboon.configuration.servers.inspect, "31", 1)
125
+ end
111
126
 
112
127
  # desc "init", "Generates deployment customization scripts for your app"
113
128
  # def init
@@ -1,3 +1,3 @@
1
1
  module Baboon
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.5"
3
3
  end
File without changes
@@ -103,5 +103,11 @@ describe Baboon::Configuration do
103
103
  Baboon.configuration.servers.should eq(['server_1', 'server_2'])
104
104
  end
105
105
  end
106
+
107
+ context 'when multiple servers are assigned' do
108
+ it 'should return accordingly' do
109
+ # puts Baboon.configuration.servers.inspect
110
+ end
111
+ end
106
112
  end
107
113
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: baboon
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -256,6 +256,7 @@ files:
256
256
  - lib/generators/baboon/config/templates/baboon.yml
257
257
  - lib/generators/baboon/install/install_generator.rb
258
258
  - lib/generators/baboon/install/templates/baboon.rb
259
+ - spec/lib/baboon/cli.rb
259
260
  - spec/lib/baboon/configuration_spec.rb
260
261
  - spec/lib/baboon_spec.rb
261
262
  - spec/lib/generators/baboon/install/install_generator_spec.rb
@@ -276,7 +277,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
276
277
  version: '0'
277
278
  segments:
278
279
  - 0
279
- hash: -1949911459240274034
280
+ hash: 1283147833976404377
280
281
  required_rubygems_version: !ruby/object:Gem::Requirement
281
282
  none: false
282
283
  requirements:
@@ -285,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
285
286
  version: '0'
286
287
  segments:
287
288
  - 0
288
- hash: -1949911459240274034
289
+ hash: 1283147833976404377
289
290
  requirements: []
290
291
  rubyforge_project: baboon
291
292
  rubygems_version: 1.8.24