webbynode 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of webbynode might be problematic. Click here for more details.

Files changed (98) hide show
  1. data/Manifest +88 -4
  2. data/PostInstall.txt +42 -9
  3. data/README.rdoc +6 -0
  4. data/Rakefile +16 -19
  5. data/assets/webbynode.png +0 -0
  6. data/bin/webbynode +3 -3
  7. data/bin/wn +7 -0
  8. data/cucumber.yml +1 -0
  9. data/devver.rake +174 -0
  10. data/features/bootstrap.feature +17 -0
  11. data/features/step_definitions/command_steps.rb +14 -0
  12. data/features/support/env.rb +22 -0
  13. data/features/support/hooks.rb +8 -0
  14. data/{test/test_webbynode.rb → features/support/io_features.rb} +0 -0
  15. data/features/support/mocha.rb +15 -0
  16. data/lib/templates/api_token +14 -0
  17. data/lib/templates/backup +15 -0
  18. data/lib/templates/gitignore +4 -0
  19. data/lib/templates/help +53 -0
  20. data/lib/webbynode/api_client.rb +121 -0
  21. data/lib/webbynode/application.rb +21 -0
  22. data/lib/webbynode/command.rb +332 -0
  23. data/lib/webbynode/commands/add_backup.rb +33 -0
  24. data/lib/webbynode/commands/add_key.rb +24 -0
  25. data/lib/webbynode/commands/alias.rb +153 -0
  26. data/lib/webbynode/commands/change_dns.rb +29 -0
  27. data/lib/webbynode/commands/config.rb +15 -0
  28. data/lib/webbynode/commands/delete.rb +25 -0
  29. data/lib/webbynode/commands/help.rb +25 -0
  30. data/lib/webbynode/commands/init.rb +77 -0
  31. data/lib/webbynode/commands/push.rb +70 -0
  32. data/lib/webbynode/commands/remote.rb +28 -0
  33. data/lib/webbynode/commands/restart.rb +25 -0
  34. data/lib/webbynode/commands/start.rb +23 -0
  35. data/lib/webbynode/commands/stop.rb +23 -0
  36. data/lib/webbynode/commands/tasks.rb +149 -0
  37. data/lib/webbynode/commands/version.rb +8 -0
  38. data/lib/webbynode/commands/webbies.rb +30 -0
  39. data/lib/webbynode/git.rb +112 -0
  40. data/lib/webbynode/io.rb +175 -0
  41. data/lib/webbynode/notify.rb +19 -0
  42. data/lib/webbynode/option.rb +84 -0
  43. data/lib/webbynode/parameter.rb +27 -0
  44. data/lib/webbynode/properties.rb +43 -0
  45. data/lib/webbynode/push_and.rb +16 -0
  46. data/lib/webbynode/remote_executor.rb +21 -0
  47. data/lib/webbynode/server.rb +39 -0
  48. data/lib/webbynode/ssh.rb +65 -0
  49. data/lib/webbynode/ssh_keys.rb +36 -0
  50. data/lib/webbynode.rb +56 -0
  51. data/spec/fixtures/aliases +0 -0
  52. data/spec/fixtures/api/credentials +3 -0
  53. data/spec/fixtures/api/dns +30 -0
  54. data/spec/fixtures/api/dns_a_record +20 -0
  55. data/spec/fixtures/api/dns_a_record_already_exists +15 -0
  56. data/spec/fixtures/api/dns_a_record_error +13 -0
  57. data/spec/fixtures/api/dns_new_zone +17 -0
  58. data/spec/fixtures/api/webbies +26 -0
  59. data/spec/fixtures/api/webbies_unauthorized +12 -0
  60. data/spec/fixtures/api/webby +6 -0
  61. data/spec/fixtures/commands/tasks/after_push +3 -0
  62. data/spec/fixtures/fixture_helpers +2 -0
  63. data/spec/fixtures/git/config/210.11.13.12 +9 -0
  64. data/spec/fixtures/git/config/67.23.79.31 +9 -0
  65. data/spec/fixtures/git/config/67.23.79.32 +9 -0
  66. data/spec/fixtures/git/config/config +9 -0
  67. data/spec/fixtures/git/status/clean +2 -0
  68. data/spec/fixtures/git/status/dirty +9 -0
  69. data/spec/fixtures/pushand +2 -0
  70. data/spec/spec_helper.rb +58 -0
  71. data/spec/webbynode/api_client_spec.rb +227 -0
  72. data/spec/webbynode/application_spec.rb +50 -0
  73. data/spec/webbynode/command_spec.rb +285 -0
  74. data/spec/webbynode/commands/add_backup_spec.rb +66 -0
  75. data/spec/webbynode/commands/add_key_spec.rb +58 -0
  76. data/spec/webbynode/commands/alias_spec.rb +213 -0
  77. data/spec/webbynode/commands/change_dns_spec.rb +51 -0
  78. data/spec/webbynode/commands/config_spec.rb +22 -0
  79. data/spec/webbynode/commands/delete_spec.rb +78 -0
  80. data/spec/webbynode/commands/help_spec.rb +43 -0
  81. data/spec/webbynode/commands/init_spec.rb +326 -0
  82. data/spec/webbynode/commands/push_spec.rb +175 -0
  83. data/spec/webbynode/commands/remote_spec.rb +76 -0
  84. data/spec/webbynode/commands/tasks_spec.rb +288 -0
  85. data/spec/webbynode/commands/version_spec.rb +18 -0
  86. data/spec/webbynode/commands/webbies_spec.rb +27 -0
  87. data/spec/webbynode/git_spec.rb +310 -0
  88. data/spec/webbynode/io_spec.rb +198 -0
  89. data/spec/webbynode/option_spec.rb +48 -0
  90. data/spec/webbynode/parameter_spec.rb +70 -0
  91. data/spec/webbynode/push_and_spec.rb +28 -0
  92. data/spec/webbynode/remote_executor_spec.rb +25 -0
  93. data/spec/webbynode/server_spec.rb +101 -0
  94. data/webbynode.gemspec +25 -16
  95. metadata +182 -14
  96. data/lib/wn.rb +0 -106
  97. data/test/test_helper.rb +0 -9
  98. data/test/test_wn.rb +0 -220
data/Manifest CHANGED
@@ -4,8 +4,92 @@ Manifest.txt
4
4
  PostInstall.txt
5
5
  README.rdoc
6
6
  Rakefile
7
+ assets/webbynode.png
7
8
  bin/webbynode
8
- lib/wn.rb
9
- test/test_helper.rb
10
- test/test_webbynode.rb
11
- test/test_wn.rb
9
+ bin/wn
10
+ cucumber.yml
11
+ devver.rake
12
+ features/bootstrap.feature
13
+ features/step_definitions/command_steps.rb
14
+ features/support/env.rb
15
+ features/support/hooks.rb
16
+ features/support/io_features.rb
17
+ features/support/mocha.rb
18
+ lib/templates/api_token
19
+ lib/templates/backup
20
+ lib/templates/gitignore
21
+ lib/templates/help
22
+ lib/webbynode.rb
23
+ lib/webbynode/api_client.rb
24
+ lib/webbynode/application.rb
25
+ lib/webbynode/command.rb
26
+ lib/webbynode/commands/add_backup.rb
27
+ lib/webbynode/commands/add_key.rb
28
+ lib/webbynode/commands/alias.rb
29
+ lib/webbynode/commands/change_dns.rb
30
+ lib/webbynode/commands/config.rb
31
+ lib/webbynode/commands/delete.rb
32
+ lib/webbynode/commands/help.rb
33
+ lib/webbynode/commands/init.rb
34
+ lib/webbynode/commands/push.rb
35
+ lib/webbynode/commands/remote.rb
36
+ lib/webbynode/commands/restart.rb
37
+ lib/webbynode/commands/start.rb
38
+ lib/webbynode/commands/stop.rb
39
+ lib/webbynode/commands/tasks.rb
40
+ lib/webbynode/commands/version.rb
41
+ lib/webbynode/commands/webbies.rb
42
+ lib/webbynode/git.rb
43
+ lib/webbynode/io.rb
44
+ lib/webbynode/notify.rb
45
+ lib/webbynode/option.rb
46
+ lib/webbynode/parameter.rb
47
+ lib/webbynode/properties.rb
48
+ lib/webbynode/push_and.rb
49
+ lib/webbynode/remote_executor.rb
50
+ lib/webbynode/server.rb
51
+ lib/webbynode/ssh.rb
52
+ lib/webbynode/ssh_keys.rb
53
+ spec/fixtures/aliases
54
+ spec/fixtures/api/credentials
55
+ spec/fixtures/api/dns
56
+ spec/fixtures/api/dns_a_record
57
+ spec/fixtures/api/dns_a_record_already_exists
58
+ spec/fixtures/api/dns_a_record_error
59
+ spec/fixtures/api/dns_new_zone
60
+ spec/fixtures/api/webbies
61
+ spec/fixtures/api/webbies_unauthorized
62
+ spec/fixtures/api/webby
63
+ spec/fixtures/commands/tasks/after_push
64
+ spec/fixtures/fixture_helpers
65
+ spec/fixtures/git/config/210.11.13.12
66
+ spec/fixtures/git/config/67.23.79.31
67
+ spec/fixtures/git/config/67.23.79.32
68
+ spec/fixtures/git/config/config
69
+ spec/fixtures/git/status/clean
70
+ spec/fixtures/git/status/dirty
71
+ spec/fixtures/pushand
72
+ spec/spec_helper.rb
73
+ spec/webbynode/api_client_spec.rb
74
+ spec/webbynode/application_spec.rb
75
+ spec/webbynode/command_spec.rb
76
+ spec/webbynode/commands/add_backup_spec.rb
77
+ spec/webbynode/commands/add_key_spec.rb
78
+ spec/webbynode/commands/alias_spec.rb
79
+ spec/webbynode/commands/change_dns_spec.rb
80
+ spec/webbynode/commands/config_spec.rb
81
+ spec/webbynode/commands/delete_spec.rb
82
+ spec/webbynode/commands/help_spec.rb
83
+ spec/webbynode/commands/init_spec.rb
84
+ spec/webbynode/commands/push_spec.rb
85
+ spec/webbynode/commands/remote_spec.rb
86
+ spec/webbynode/commands/tasks_spec.rb
87
+ spec/webbynode/commands/version_spec.rb
88
+ spec/webbynode/commands/webbies_spec.rb
89
+ spec/webbynode/git_spec.rb
90
+ spec/webbynode/io_spec.rb
91
+ spec/webbynode/option_spec.rb
92
+ spec/webbynode/parameter_spec.rb
93
+ spec/webbynode/push_and_spec.rb
94
+ spec/webbynode/remote_executor_spec.rb
95
+ spec/webbynode/server_spec.rb
data/PostInstall.txt CHANGED
@@ -1,12 +1,45 @@
1
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-
2
- Webbynode deployment gem
3
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-
1
+ -=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-
2
+ Webbynode Rapid Deployment Gem
3
+ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-
4
4
 
5
- This deployment engine is highly experimental and
6
- should be considered beta code for now.
5
+ This deployment engine is highly experimental and
6
+ should be considered beta code for now.
7
7
 
8
- Commands:
9
8
 
10
- webbynode init Initializes the current app for deployment to a Webby
11
- webbynode push Deploys the current committed code to a Webby
12
-
9
+ Initial Setup
10
+ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-
11
+
12
+ Setup an initial Webbynode repository with:
13
+
14
+ webbynode init [webby_ip] [example.com]
15
+ * This will initialize git
16
+ * This will add and commit what you currently have
17
+ * This will add Webbynode to "git remote"
18
+
19
+ Now, deploy your application with:
20
+
21
+ webbynode push
22
+
23
+ Then, for each update, follow the familiar git workflow:
24
+
25
+ git add .
26
+ git commit -m "My Updates"
27
+
28
+ And finally, to release the updated version of your application, again, execute:
29
+
30
+ webbynode push
31
+
32
+
33
+ Webbynode Commands
34
+ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-
35
+
36
+ webbynode remote [command]
37
+ * Run a command on the Webby from the applications' root
38
+ example(s):
39
+ webbynode remote 'rake my:custom:task'
40
+ webbynode remote 'cat log/production.log'
41
+
42
+ webbynode addkey
43
+ * Adds your public SSH key to your Webby so you will no longer
44
+ be prompted for your password when interacting with your Webby
45
+
data/README.rdoc CHANGED
@@ -95,6 +95,12 @@ Then to update:
95
95
 
96
96
  To git@208.88.125.207:myapp
97
97
  2355220..a607460 master -> master
98
+
99
+ == ROADMAP:
100
+
101
+ * Ability to delete an app from command line:
102
+
103
+ webbynode delete deletes the current app
98
104
 
99
105
  == REQUIREMENTS:
100
106
 
data/Rakefile CHANGED
@@ -4,12 +4,18 @@ require 'rake/testtask'
4
4
 
5
5
  require 'echoe'
6
6
 
7
- Echoe.new('webbynode', '0.1.2') do |p|
7
+ Echoe.new('webbynode', '0.2.0') do |p|
8
8
  p.description = "Webbynode Deployment Gem"
9
9
  p.url = "http://webbynode.com"
10
10
  p.author = "Felipe Coury"
11
11
  p.email = "felipe@webbynode.com"
12
12
  p.ignore_pattern = ["tmp/*", "script/*"]
13
+ p.dependencies = [
14
+ ['net-ssh', '>=2.0.20'],
15
+ ['highline', '>=1.5.2'],
16
+ ['httparty', '>=0.4.5'],
17
+ ['domainatrix','>=0.0.7'],
18
+ ]
13
19
  # p.dependencies = [
14
20
  # ['activeresource','>= 2.3.4'],
15
21
  # ['activesupport','>= 2.3.4'],
@@ -17,28 +23,19 @@ Echoe.new('webbynode', '0.1.2') do |p|
17
23
  # ['highline', '>=1.5.1'],
18
24
  # ['httparty', '>=0.4.5']
19
25
  # ]
20
- p.install_message = <<EOS
21
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
22
- Webbynode deployment gem
23
- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
26
+ p.install_message = "
27
+ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
28
+ Webbynode Rapid Deployment Gem
29
+ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
24
30
 
25
- This deployment engine is highly experimental and
26
- should be considered beta code for the time being.
31
+ This deployment engine is highly experimental and
32
+ should be considered beta code for now.
27
33
 
28
- Commands:
34
+ For a quickstart:
35
+ http://guides.webbynode.com/articles/rapidapps
29
36
 
30
- webbynode init Initializes the current app for deployment to a Webby
31
- webbynode push Deploys the current committed code to a Webby
32
-
33
- EOS
37
+ "
34
38
  end
35
- #
36
- # Rake::TestTask.new(:test_new) do |test|
37
- # test.libs << 'test'
38
- # test.ruby_opts << '-rubygems'
39
- # test.pattern = 'test/**/test_*.rb'
40
- # test.verbose = true
41
- # end
42
39
 
43
40
  require 'rcov/rcovtask'
44
41
  desc 'Measures test coverage using rcov'
Binary file
data/bin/webbynode CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  $:.unshift File.dirname(__FILE__)+"/../lib"
3
3
  require 'rubygems'
4
- require 'wn'
4
+ require 'webbynode'
5
5
 
6
- app = Wn::App.new(ARGV)
7
- app.run
6
+ application = Webbynode::Application.new(*ARGV)
7
+ application.execute
data/bin/wn ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift File.dirname(__FILE__)+"/../lib"
3
+ require 'rubygems'
4
+ require 'webbynode'
5
+
6
+ application = Webbynode::Application.new(*ARGV)
7
+ application.execute
data/cucumber.yml ADDED
@@ -0,0 +1 @@
1
+ default: --format pretty features
data/devver.rake ADDED
@@ -0,0 +1,174 @@
1
+ require 'rake'
2
+
3
+ namespace :devver do
4
+
5
+ APP_CALL = 'devver'
6
+ # List any test files you do not want to run on Devver. This array can contain names and regular expressions.
7
+ EXCLUDED_TEST_FILES = []
8
+
9
+ desc "Runs all units functionals and integration tests on Devver"
10
+ task :test do
11
+ errors = %w(devver:test:units devver:test:functionals devver:test:integration).collect do |task|
12
+ begin
13
+ Rake::Task[task].invoke
14
+ nil
15
+ rescue => e
16
+ task
17
+ end
18
+ end.compact
19
+ abort "Errors running #{errors.join(", ").to_s}!" if errors.any?
20
+ end
21
+
22
+ desc "Forces Devver to clear and rebuild the database (by executing the 'prepare_database' hook)"
23
+ task :prepare_db do
24
+ command = "#{APP_CALL} --db"
25
+ puts command
26
+ system(command)
27
+ end
28
+
29
+ desc "Forces Devver to try to install dependencies (by executing the 'install_dependencies' hook)"
30
+ task :install_dependencies do
31
+ command = "#{APP_CALL} --install_dependencies"
32
+ puts command
33
+ system(command)
34
+ end
35
+
36
+ desc "Forces Devver to sync all changed files"
37
+ task :sync do
38
+ command = "#{APP_CALL} --sync"
39
+ puts command
40
+ system(command)
41
+ end
42
+
43
+ desc "Delete the Devver project ID for this project. The next time you connect to Devver, you'll be assigned a new project ID"
44
+ task :reset do
45
+ command = "rm .devver/project_id"
46
+ system(command)
47
+ puts "Your project has been reset successfully"
48
+ end
49
+
50
+ desc "Delete all of the project files on the server and resync"
51
+ task :reload do
52
+ command = "#{APP_CALL} --reload"
53
+ puts command
54
+ system(command)
55
+ end
56
+
57
+ desc "Runs all specs on Devver"
58
+ task :spec do
59
+ devvertest('spec/**/*_spec.rb')
60
+ end
61
+
62
+ namespace :spec do
63
+ desc "Runs all model specs on Devver"
64
+ task :model do
65
+ devvertest('spec/models/**/*_spec.rb')
66
+ end
67
+
68
+ desc "Runs all request specs on Devver"
69
+ task :request do
70
+ devvertest('spec/requests/**/*_spec.rb')
71
+ end
72
+
73
+ desc "Runs all controller specs on Devver"
74
+ task :controller do
75
+ devvertest('spec/controllers/**/*_spec.rb')
76
+ end
77
+
78
+ desc "Runs all view specs on Devver"
79
+ task :view do
80
+ devvertest('spec/views/**/*_spec.rb')
81
+ end
82
+
83
+ desc "Runs all helper specs on Devver"
84
+ task :helper do
85
+ devvertest('spec/helpers/**/*_spec.rb')
86
+ end
87
+
88
+ desc "Runs all lib specs on Devver"
89
+ task :lib do
90
+ devvertest('spec/lib/**/*_spec.rb')
91
+ end
92
+
93
+ end
94
+
95
+
96
+ namespace :test do
97
+ desc "Runs all unit tests on Devver"
98
+ task :units do
99
+ devvertest('test/unit/**/*_test.rb')
100
+ end
101
+
102
+ desc "Runs all functional tests on Devver"
103
+ task :functionals do
104
+ devvertest('test/functional/**/*_test.rb')
105
+ end
106
+
107
+ desc "Runs all integration tests on Devver"
108
+ task :integration do
109
+ devvertest('test/integration/**/*_test.rb')
110
+ end
111
+
112
+ end
113
+ end
114
+
115
+ def remove_excluded_files(files)
116
+ removed_files = []
117
+ files.each do |file|
118
+ EXCLUDED_TEST_FILES.each do |exclude|
119
+ removed_files << file if exclude===file
120
+ end
121
+ end
122
+ removed_files = removed_files.flatten
123
+ files = files - removed_files
124
+ [files, removed_files]
125
+ end
126
+
127
+ def run_tests_locally(files)
128
+ puts "Running the excluded test files locally"
129
+ # Run RSpec files
130
+ if files.first=~/_spec.rb/
131
+ command ="spec "
132
+ else # Run Test::Unit files
133
+ command = 'ruby -e "ARGV.each{|f| load f unless f =~ /^-/}" '
134
+ end
135
+ command += files.join(" ")
136
+ puts command
137
+ results = system(command)
138
+ raise RuntimeError.new("Command failed with status (1)") unless results
139
+ end
140
+
141
+ def get_env_var(var_name)
142
+ ENV[var_name] || ENV[var_name.upcase]
143
+ end
144
+
145
+ def devvertest(pattern)
146
+ reload = get_env_var('reload')=='true' ? true : false
147
+ #default sync to true
148
+ sync = true
149
+ sync = false if get_env_var('sync')=='false'
150
+ cache = get_env_var('cache')=='true' ? true : false
151
+ db = get_env_var('db')=='true' ? true : false
152
+ run_excluded = get_env_var('run_excluded')
153
+ if run_excluded=='true' || run_excluded=='after'
154
+ run_excluded = 'after'
155
+ elsif run_excluded=='only'
156
+ run_excluded = 'only'
157
+ else
158
+ run_excluded = ''
159
+ end
160
+
161
+ files = FileList[pattern].to_a
162
+ files, removed_files = remove_excluded_files(files)
163
+
164
+ if run_excluded!='only'
165
+ command = "#{APP_CALL} #{'--reload' if reload} #{'--nosync' if !sync} #{'--db' if db} #{'--cache' if cache} #{files.join(' ')}"
166
+ puts command
167
+ results = system(command)
168
+ raise RuntimeError.new("Command failed with status (1)") unless results
169
+ end
170
+
171
+ if run_excluded=='only' || run_excluded=='after'
172
+ run_tests_locally(removed_files) if removed_files.length > 0
173
+ end
174
+ end
@@ -0,0 +1,17 @@
1
+ Feature: Bootstrap an app for deployment
2
+ In order to get the app online
3
+ As a Webbynode user
4
+ I want bootstrap my app
5
+
6
+ Scenario: Running the init command with no params
7
+ Given I am running webbynode gem for the first time
8
+ When I run "wn init"
9
+ Then I should see "Missing 'webby' parameter"
10
+ And I should see "Usage: webbynode init webby \[dns\]"
11
+
12
+ Scenario: Getting help for the init command
13
+ When I run "wn help init"
14
+ Then I should see "Usage: webbynode init webby \[dns\]"
15
+ And I should see "Parameters:"
16
+ And I should see " webby Name or IP of the Webby to deploy to"
17
+ And I should see " dns The DNS used for this application, optional"
@@ -0,0 +1,14 @@
1
+ Given /^I am running webbynode gem for the first time$/ do
2
+ end
3
+
4
+ When /^I run "([^\"]*)"$/ do |command_line|
5
+ args = command_line.split(" ")
6
+ args.shift
7
+
8
+ @app = Webbynode::Application.new(*args)
9
+ @app.execute
10
+ end
11
+
12
+ Then /^I should see "([^\"]*)"$/ do |output|
13
+ stdout.should =~ /#{output}/
14
+ end
@@ -0,0 +1,22 @@
1
+ # Require RSpec
2
+ require 'rubygems'
3
+ require 'spec'
4
+
5
+ # Load Webbynode Class
6
+ require File.join(File.expand_path(File.dirname(__FILE__)), '..', '..', 'lib', 'webbynode')
7
+
8
+ module Webbynode::IoStub
9
+ def stdout
10
+ $stdout.rewind
11
+ $stdout.read
12
+ end
13
+
14
+ def debug(s)
15
+ @orig_stdout.puts s
16
+ end
17
+
18
+ def d(x); $stderr.puts x; end
19
+ def ppd(x); $stderr.puts x.pretty_inspect; end
20
+ end
21
+
22
+ World(Webbynode::IoStub)
@@ -0,0 +1,8 @@
1
+ Before do
2
+ @orig_stdout = $stdout
3
+ $stdout = StringIO.new
4
+ end
5
+
6
+ After do
7
+ $stdout = @orig_stdout
8
+ end
@@ -0,0 +1,15 @@
1
+ require "mocha"
2
+
3
+ World(Mocha::API)
4
+
5
+ Before do
6
+ mocha_setup
7
+ end
8
+
9
+ After do
10
+ begin
11
+ mocha_verify
12
+ ensure
13
+ mocha_teardown
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+
2
+ Webbynode API Token
3
+
4
+ For optimal usage of all the features provided by the Webbynode Gem, we need to
5
+ interact with your account.
6
+
7
+ Please provide below the email you use to login on Webbymanager and your API
8
+ Token. The API token can be found on the Account section of Webbymanager. For
9
+ more instructions, visit this link:
10
+
11
+ http://guides.webbynode.com/articles/rapidapps/bootstrapping.html
12
+
13
+ Please provide your credentials below.
14
+
@@ -0,0 +1,15 @@
1
+ Webbynode Rapid App Backup
2
+
3
+ This service will backup a dump of your application Database and the contents
4
+ of your application folder to a bucket on Amazon S3. If you don't have an
5
+ Amazon S3 account or if you don't know how to create one, please check our
6
+ guide on http://guides.webbynode.com/rapid.
7
+
8
+ DISCLAIMER: Backing up to S3 will incur on a charge by Amazon according to the
9
+ terms of the services contract you accepted when signing up to their services.
10
+ We do not guarantee the minimum or maximum size of the backup, depending
11
+ completely on how large is the data your application produces. By entering your
12
+ credentials below, you are acknowledging and accepting this terms.
13
+
14
+ Enter your Amazon S3 credentials or leave the field empty to abort:
15
+
@@ -0,0 +1,4 @@
1
+ config/database.yml
2
+ log/*
3
+ tmp/*
4
+ db/*.sqlite3
@@ -0,0 +1,53 @@
1
+
2
+ -=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-
3
+ Webbynode Rapid Deployment Gem
4
+ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-
5
+
6
+ This deployment engine is highly experimental and
7
+ should be considered beta code for now.
8
+
9
+
10
+
11
+ Initial Setup
12
+ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-
13
+
14
+ Setup an initial Webbynode repository with:
15
+
16
+ webbynode init [webby_ip] [example.com]
17
+ * This will initialize git
18
+ * This will add and commit what you currently have
19
+ * This will add Webbynode to "git remote"
20
+
21
+ Now, deploy your application with:
22
+
23
+ webbynode push
24
+
25
+ Then, for each update, follow the familiar git workflow:
26
+
27
+ git add .
28
+ git commit -m "My Updates"
29
+
30
+ And finally, to release the updated version of your application, again, execute:
31
+
32
+ webbynode push
33
+
34
+
35
+
36
+ Webbynode Commands
37
+ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-
38
+
39
+ webbynode init [webby_ip] [example.com]
40
+ * Initializes the Webbynode environment for your application
41
+
42
+ webbynode remote [command]
43
+ * Run a command on the Webby from the applications' root
44
+ example(s):
45
+ webbynode remote 'rake my:custom:task'
46
+ webbynode remote 'cat log/production.log'
47
+
48
+ webbynode addkey
49
+ * Adds your public SSH key to your Webby so you will no longer
50
+ be prompted for your password when interacting with your Webby
51
+
52
+ webbynode version
53
+ * Displays the currently installed version of Webbynode gem