lobot 0.10.2 → 0.10.3
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 +2 -2
- data/features/step_definitions/ci_steps.rb +17 -0
- data/lib/generators/lobot/install_generator.rb +3 -5
- data/lib/generators/lobot/templates/chef/cookbooks/pivotal_ci/templates/default/jenkins-job-config.xml.erb +8 -1
- data/lib/generators/lobot/templates/ci_build.sh +1 -1
- data/lib/lobot/version.rb +1 -1
- data/lobot.gemspec +1 -0
- data/spec/install_spec.rb +27 -3
- metadata +34 -84
- data/lib/generators/lobot/templates/dot-gitignore +0 -1
data/README.md
CHANGED
@@ -70,7 +70,7 @@ Alternatively, manually edit config/ci.yml
|
|
70
70
|
## Adjust Defaults (Optional)
|
71
71
|
In your ci.yml, there are defaults set for values that have the recommened value. For example, the instance size used for EC2 is set to "m1.large", which costs $230/month.
|
72
72
|
If you don't need to increase your memory size for Jenkins or TeamCity, you could elect to use "c1.medium" instead which costs about half that.
|
73
|
-
You can also save on EC2 costs by using a tool like
|
73
|
+
You can also save on EC2 costs by using a tool like projectmonitor or ylastic to schedule when your instances are online.
|
74
74
|
|
75
75
|
For security, the lobot:install task added config/ci.yml to the .gitignore file since it includes sensitive AWS credentials and your CI users password.
|
76
76
|
Keep in mind that the default build script ci_build.sh uses the headless gem and jasmine. You'll want to add those to your Gemfile or change your build command.
|
@@ -118,7 +118,7 @@ Rstarting a server
|
|
118
118
|
|
119
119
|
rake ci:start_server
|
120
120
|
|
121
|
-
## Add your new CI instance to [
|
121
|
+
## Add your new CI instance to [projectmonitor](http://github.com/pivotal/projectmonitor) and CCMenu
|
122
122
|
|
123
123
|
Lobot can generate the config for you, just run:
|
124
124
|
|
@@ -80,6 +80,23 @@ When /^I make changes to be committed$/ do
|
|
80
80
|
end
|
81
81
|
system!("cd testapp && bundle install")
|
82
82
|
system!("cd testapp && bundle exec jasmine init .")
|
83
|
+
system!(%{cd testapp && echo "task :default => 'jasmine:ci'" >> Rakefile})
|
84
|
+
|
85
|
+
spec_contents = <<-RUBY
|
86
|
+
require 'rspec'
|
87
|
+
|
88
|
+
describe "The World" do
|
89
|
+
it "should be green and blue" do
|
90
|
+
the_world = ["green", "blue"]
|
91
|
+
the_world.should include("green")
|
92
|
+
the_world.should include("blue")
|
93
|
+
end
|
94
|
+
end
|
95
|
+
RUBY
|
96
|
+
|
97
|
+
File.open("testapp/spec/hello_world_spec.rb", "w") do |file|
|
98
|
+
file.write(spec_contents)
|
99
|
+
end
|
83
100
|
end
|
84
101
|
|
85
102
|
When /^I push to git$/ do
|
@@ -20,11 +20,9 @@ module Lobot
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def add_ci_yml_to_gitignore
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
template 'dot-gitignore', '.gitignore'
|
27
|
-
end
|
23
|
+
system("touch #{destination_root}/.gitignore")
|
24
|
+
append_to_file '.gitignore', "config/ci.yml\n"
|
25
|
+
append_to_file '.gitignore', "spec/reports\n"
|
28
26
|
end
|
29
27
|
|
30
28
|
def create_chef_cookbooks
|
@@ -37,6 +37,7 @@
|
|
37
37
|
<gitConfigEmail></gitConfigEmail>
|
38
38
|
<skipTag>false</skipTag>
|
39
39
|
<scmName></scmName>
|
40
|
+
<includedRegions></includedRegions>
|
40
41
|
</scm>
|
41
42
|
<canRoam>true</canRoam>
|
42
43
|
<disabled>false</disabled>
|
@@ -53,6 +54,12 @@
|
|
53
54
|
<command><%= CI_CONFIG['build_command'] %></command>
|
54
55
|
</hudson.tasks.Shell>
|
55
56
|
</builders>
|
56
|
-
<publishers
|
57
|
+
<publishers>
|
58
|
+
<hudson.tasks.junit.JUnitResultArchiver>
|
59
|
+
<testResults>spec/reports/*.xml</testResults>
|
60
|
+
<keepLongStdio>false</keepLongStdio>
|
61
|
+
<testDataPublishers/>
|
62
|
+
</hudson.tasks.junit.JUnitResultArchiver>
|
63
|
+
</publishers>
|
57
64
|
<buildWrappers/>
|
58
65
|
</project>
|
data/lib/lobot/version.rb
CHANGED
data/lobot.gemspec
CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.add_dependency('rvm')
|
26
26
|
s.add_dependency('rvm-capistrano')
|
27
27
|
s.add_dependency('nokogiri', '>=1.4.4')
|
28
|
+
s.add_dependency('ci_reporter', '>=1.7.0')
|
28
29
|
s.add_development_dependency('cucumber')
|
29
30
|
s.add_development_dependency('rspec')
|
30
31
|
s.add_development_dependency('generator_spec')
|
data/spec/install_spec.rb
CHANGED
@@ -15,11 +15,35 @@ describe Lobot::InstallGenerator do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
context "without requiring input" do
|
18
|
-
before
|
18
|
+
before do
|
19
|
+
before_generator
|
20
|
+
run_generator
|
21
|
+
end
|
22
|
+
|
23
|
+
let(:before_generator) {}
|
24
|
+
|
25
|
+
context "when no .gitignore exists" do
|
26
|
+
it "creates .gitignore" do
|
27
|
+
assert_file ".gitignore", /config\/ci.yml/
|
28
|
+
end
|
19
29
|
|
30
|
+
it "adds spec/reports to the gitignore" do
|
31
|
+
assert_file ".gitignore", /spec\/reports/
|
32
|
+
end
|
33
|
+
end
|
20
34
|
|
21
|
-
|
22
|
-
|
35
|
+
context "when there is already a .gitignore" do
|
36
|
+
let(:before_generator) do
|
37
|
+
system("touch #{destination_root}/.gitignore")
|
38
|
+
end
|
39
|
+
|
40
|
+
it "creates .gitignore" do
|
41
|
+
assert_file ".gitignore", /config\/ci.yml/
|
42
|
+
end
|
43
|
+
|
44
|
+
it "adds spec/reports to the gitignore" do
|
45
|
+
assert_file ".gitignore", /spec\/reports/
|
46
|
+
end
|
23
47
|
end
|
24
48
|
|
25
49
|
it "creates ci.yml" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lobot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fog
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70238490779460 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.9.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 0.9.0
|
24
|
+
version_requirements: *70238490779460
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: capistrano
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &70238490778540 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ! '>='
|
@@ -37,15 +32,10 @@ dependencies:
|
|
37
32
|
version: '0'
|
38
33
|
type: :runtime
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
35
|
+
version_requirements: *70238490778540
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: capistrano-ext
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &70238490777140 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
41
|
- - ! '>='
|
@@ -53,15 +43,10 @@ dependencies:
|
|
53
43
|
version: '0'
|
54
44
|
type: :runtime
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
46
|
+
version_requirements: *70238490777140
|
62
47
|
- !ruby/object:Gem::Dependency
|
63
48
|
name: rvm
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &70238490775920 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
51
|
requirements:
|
67
52
|
- - ! '>='
|
@@ -69,15 +54,10 @@ dependencies:
|
|
69
54
|
version: '0'
|
70
55
|
type: :runtime
|
71
56
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ! '>='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
57
|
+
version_requirements: *70238490775920
|
78
58
|
- !ruby/object:Gem::Dependency
|
79
59
|
name: rvm-capistrano
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirement: &70238490774820 !ruby/object:Gem::Requirement
|
81
61
|
none: false
|
82
62
|
requirements:
|
83
63
|
- - ! '>='
|
@@ -85,15 +65,10 @@ dependencies:
|
|
85
65
|
version: '0'
|
86
66
|
type: :runtime
|
87
67
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
68
|
+
version_requirements: *70238490774820
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
70
|
name: nokogiri
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirement: &70238490789800 !ruby/object:Gem::Requirement
|
97
72
|
none: false
|
98
73
|
requirements:
|
99
74
|
- - ! '>='
|
@@ -101,15 +76,21 @@ dependencies:
|
|
101
76
|
version: 1.4.4
|
102
77
|
type: :runtime
|
103
78
|
prerelease: false
|
104
|
-
version_requirements:
|
79
|
+
version_requirements: *70238490789800
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: ci_reporter
|
82
|
+
requirement: &70238490788560 !ruby/object:Gem::Requirement
|
105
83
|
none: false
|
106
84
|
requirements:
|
107
85
|
- - ! '>='
|
108
86
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.
|
87
|
+
version: 1.7.0
|
88
|
+
type: :runtime
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *70238490788560
|
110
91
|
- !ruby/object:Gem::Dependency
|
111
92
|
name: cucumber
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirement: &70238490787400 !ruby/object:Gem::Requirement
|
113
94
|
none: false
|
114
95
|
requirements:
|
115
96
|
- - ! '>='
|
@@ -117,15 +98,10 @@ dependencies:
|
|
117
98
|
version: '0'
|
118
99
|
type: :development
|
119
100
|
prerelease: false
|
120
|
-
version_requirements:
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ! '>='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
101
|
+
version_requirements: *70238490787400
|
126
102
|
- !ruby/object:Gem::Dependency
|
127
103
|
name: rspec
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirement: &70238490786180 !ruby/object:Gem::Requirement
|
129
105
|
none: false
|
130
106
|
requirements:
|
131
107
|
- - ! '>='
|
@@ -133,15 +109,10 @@ dependencies:
|
|
133
109
|
version: '0'
|
134
110
|
type: :development
|
135
111
|
prerelease: false
|
136
|
-
version_requirements:
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ! '>='
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '0'
|
112
|
+
version_requirements: *70238490786180
|
142
113
|
- !ruby/object:Gem::Dependency
|
143
114
|
name: generator_spec
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirement: &70238490785200 !ruby/object:Gem::Requirement
|
145
116
|
none: false
|
146
117
|
requirements:
|
147
118
|
- - ! '>='
|
@@ -149,15 +120,10 @@ dependencies:
|
|
149
120
|
version: '0'
|
150
121
|
type: :development
|
151
122
|
prerelease: false
|
152
|
-
version_requirements:
|
153
|
-
none: false
|
154
|
-
requirements:
|
155
|
-
- - ! '>='
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '0'
|
123
|
+
version_requirements: *70238490785200
|
158
124
|
- !ruby/object:Gem::Dependency
|
159
125
|
name: rails
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
126
|
+
requirement: &70238490784460 !ruby/object:Gem::Requirement
|
161
127
|
none: false
|
162
128
|
requirements:
|
163
129
|
- - ! '>='
|
@@ -165,15 +131,10 @@ dependencies:
|
|
165
131
|
version: '0'
|
166
132
|
type: :development
|
167
133
|
prerelease: false
|
168
|
-
version_requirements:
|
169
|
-
none: false
|
170
|
-
requirements:
|
171
|
-
- - ! '>='
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
134
|
+
version_requirements: *70238490784460
|
174
135
|
- !ruby/object:Gem::Dependency
|
175
136
|
name: jasmine
|
176
|
-
requirement: !ruby/object:Gem::Requirement
|
137
|
+
requirement: &70238490783600 !ruby/object:Gem::Requirement
|
177
138
|
none: false
|
178
139
|
requirements:
|
179
140
|
- - ! '>='
|
@@ -181,15 +142,10 @@ dependencies:
|
|
181
142
|
version: '0'
|
182
143
|
type: :development
|
183
144
|
prerelease: false
|
184
|
-
version_requirements:
|
185
|
-
none: false
|
186
|
-
requirements:
|
187
|
-
- - ! '>='
|
188
|
-
- !ruby/object:Gem::Version
|
189
|
-
version: '0'
|
145
|
+
version_requirements: *70238490783600
|
190
146
|
- !ruby/object:Gem::Dependency
|
191
147
|
name: headless
|
192
|
-
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirement: &70238490798940 !ruby/object:Gem::Requirement
|
193
149
|
none: false
|
194
150
|
requirements:
|
195
151
|
- - ! '>='
|
@@ -197,12 +153,7 @@ dependencies:
|
|
197
153
|
version: '0'
|
198
154
|
type: :development
|
199
155
|
prerelease: false
|
200
|
-
version_requirements:
|
201
|
-
none: false
|
202
|
-
requirements:
|
203
|
-
- - ! '>='
|
204
|
-
- !ruby/object:Gem::Version
|
205
|
-
version: '0'
|
156
|
+
version_requirements: *70238490798940
|
206
157
|
description: Rails generators that make it easy to spin up a CI instance in the cloud.
|
207
158
|
email:
|
208
159
|
- gems@pivotallabs.com
|
@@ -264,7 +215,6 @@ files:
|
|
264
215
|
- lib/generators/lobot/templates/ci.yml
|
265
216
|
- lib/generators/lobot/templates/ci_build.sh
|
266
217
|
- lib/generators/lobot/templates/deploy-ci.rb
|
267
|
-
- lib/generators/lobot/templates/dot-gitignore
|
268
218
|
- lib/generators/lobot/templates/soloistrc
|
269
219
|
- lib/lobot.rb
|
270
220
|
- lib/lobot/railtie.rb
|
@@ -293,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
293
243
|
version: '0'
|
294
244
|
requirements: []
|
295
245
|
rubyforge_project: lobot
|
296
|
-
rubygems_version: 1.8.
|
246
|
+
rubygems_version: 1.8.17
|
297
247
|
signing_key:
|
298
248
|
specification_version: 3
|
299
249
|
summary: ! 'CI in the Cloud: Jenkins + EC2 = Lobot'
|
@@ -1 +0,0 @@
|
|
1
|
-
config/ci.yml
|