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.
- data/Manifest +88 -4
- data/PostInstall.txt +42 -9
- data/README.rdoc +6 -0
- data/Rakefile +16 -19
- data/assets/webbynode.png +0 -0
- data/bin/webbynode +3 -3
- data/bin/wn +7 -0
- data/cucumber.yml +1 -0
- data/devver.rake +174 -0
- data/features/bootstrap.feature +17 -0
- data/features/step_definitions/command_steps.rb +14 -0
- data/features/support/env.rb +22 -0
- data/features/support/hooks.rb +8 -0
- data/{test/test_webbynode.rb → features/support/io_features.rb} +0 -0
- data/features/support/mocha.rb +15 -0
- data/lib/templates/api_token +14 -0
- data/lib/templates/backup +15 -0
- data/lib/templates/gitignore +4 -0
- data/lib/templates/help +53 -0
- data/lib/webbynode/api_client.rb +121 -0
- data/lib/webbynode/application.rb +21 -0
- data/lib/webbynode/command.rb +332 -0
- data/lib/webbynode/commands/add_backup.rb +33 -0
- data/lib/webbynode/commands/add_key.rb +24 -0
- data/lib/webbynode/commands/alias.rb +153 -0
- data/lib/webbynode/commands/change_dns.rb +29 -0
- data/lib/webbynode/commands/config.rb +15 -0
- data/lib/webbynode/commands/delete.rb +25 -0
- data/lib/webbynode/commands/help.rb +25 -0
- data/lib/webbynode/commands/init.rb +77 -0
- data/lib/webbynode/commands/push.rb +70 -0
- data/lib/webbynode/commands/remote.rb +28 -0
- data/lib/webbynode/commands/restart.rb +25 -0
- data/lib/webbynode/commands/start.rb +23 -0
- data/lib/webbynode/commands/stop.rb +23 -0
- data/lib/webbynode/commands/tasks.rb +149 -0
- data/lib/webbynode/commands/version.rb +8 -0
- data/lib/webbynode/commands/webbies.rb +30 -0
- data/lib/webbynode/git.rb +112 -0
- data/lib/webbynode/io.rb +175 -0
- data/lib/webbynode/notify.rb +19 -0
- data/lib/webbynode/option.rb +84 -0
- data/lib/webbynode/parameter.rb +27 -0
- data/lib/webbynode/properties.rb +43 -0
- data/lib/webbynode/push_and.rb +16 -0
- data/lib/webbynode/remote_executor.rb +21 -0
- data/lib/webbynode/server.rb +39 -0
- data/lib/webbynode/ssh.rb +65 -0
- data/lib/webbynode/ssh_keys.rb +36 -0
- data/lib/webbynode.rb +56 -0
- data/spec/fixtures/aliases +0 -0
- data/spec/fixtures/api/credentials +3 -0
- data/spec/fixtures/api/dns +30 -0
- data/spec/fixtures/api/dns_a_record +20 -0
- data/spec/fixtures/api/dns_a_record_already_exists +15 -0
- data/spec/fixtures/api/dns_a_record_error +13 -0
- data/spec/fixtures/api/dns_new_zone +17 -0
- data/spec/fixtures/api/webbies +26 -0
- data/spec/fixtures/api/webbies_unauthorized +12 -0
- data/spec/fixtures/api/webby +6 -0
- data/spec/fixtures/commands/tasks/after_push +3 -0
- data/spec/fixtures/fixture_helpers +2 -0
- data/spec/fixtures/git/config/210.11.13.12 +9 -0
- data/spec/fixtures/git/config/67.23.79.31 +9 -0
- data/spec/fixtures/git/config/67.23.79.32 +9 -0
- data/spec/fixtures/git/config/config +9 -0
- data/spec/fixtures/git/status/clean +2 -0
- data/spec/fixtures/git/status/dirty +9 -0
- data/spec/fixtures/pushand +2 -0
- data/spec/spec_helper.rb +58 -0
- data/spec/webbynode/api_client_spec.rb +227 -0
- data/spec/webbynode/application_spec.rb +50 -0
- data/spec/webbynode/command_spec.rb +285 -0
- data/spec/webbynode/commands/add_backup_spec.rb +66 -0
- data/spec/webbynode/commands/add_key_spec.rb +58 -0
- data/spec/webbynode/commands/alias_spec.rb +213 -0
- data/spec/webbynode/commands/change_dns_spec.rb +51 -0
- data/spec/webbynode/commands/config_spec.rb +22 -0
- data/spec/webbynode/commands/delete_spec.rb +78 -0
- data/spec/webbynode/commands/help_spec.rb +43 -0
- data/spec/webbynode/commands/init_spec.rb +326 -0
- data/spec/webbynode/commands/push_spec.rb +175 -0
- data/spec/webbynode/commands/remote_spec.rb +76 -0
- data/spec/webbynode/commands/tasks_spec.rb +288 -0
- data/spec/webbynode/commands/version_spec.rb +18 -0
- data/spec/webbynode/commands/webbies_spec.rb +27 -0
- data/spec/webbynode/git_spec.rb +310 -0
- data/spec/webbynode/io_spec.rb +198 -0
- data/spec/webbynode/option_spec.rb +48 -0
- data/spec/webbynode/parameter_spec.rb +70 -0
- data/spec/webbynode/push_and_spec.rb +28 -0
- data/spec/webbynode/remote_executor_spec.rb +25 -0
- data/spec/webbynode/server_spec.rb +101 -0
- data/webbynode.gemspec +25 -16
- metadata +182 -14
- data/lib/wn.rb +0 -106
- data/test/test_helper.rb +0 -9
- 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
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
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
|
-
|
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
|
-
|
11
|
-
|
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
data/Rakefile
CHANGED
@@ -4,12 +4,18 @@ require 'rake/testtask'
|
|
4
4
|
|
5
5
|
require 'echoe'
|
6
6
|
|
7
|
-
Echoe.new('webbynode', '0.
|
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 =
|
21
|
-
|
22
|
-
|
23
|
-
|
26
|
+
p.install_message = "
|
27
|
+
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
28
|
+
Webbynode Rapid Deployment Gem
|
29
|
+
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
24
30
|
|
25
|
-
|
26
|
-
|
31
|
+
This deployment engine is highly experimental and
|
32
|
+
should be considered beta code for now.
|
27
33
|
|
28
|
-
|
34
|
+
For a quickstart:
|
35
|
+
http://guides.webbynode.com/articles/rapidapps
|
29
36
|
|
30
|
-
|
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
data/bin/wn
ADDED
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)
|
File without changes
|
@@ -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
|
+
|
data/lib/templates/help
ADDED
@@ -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
|