right_develop 2.1.1 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -20,10 +20,13 @@ You can override various aspects of the CI harness' behavior by passing a block
20
20
  tweaks various instance variables of the resulting Rake task:
21
21
 
22
22
  RightDevelop::CI::RakeTask.new do |task|
23
- task.ci_namespace = :my_happy_ci
24
- task.rspec_pattern = "spec/important/**/*_spec.rb" # only run the important specs for CI
25
- task.output_path = "ci_results" # use ci_results as the base dir for all output files
26
- task.rspec_output = "happy_specs.xml" # write to ci_results/rspec/happy_specs.xml
23
+ task.ci_namespace = :my_happy_ci
24
+ task.rspec_name = :important # run as my_happy_ci:important
25
+ task.rspec_desc = "important specs with CI output" # or use cucumber_{name,desc} for Cucumber
26
+ task.rspec_pattern = "spec/important/**/*_spec.rb" # only run the important specs for CI
27
+ task.rspec_opts = ["-t", "important"] # alternatively, only run tasks tagged as important
28
+ task.output_path = "ci_results" # use ci_results as the base dir for all output files
29
+ task.rspec_output = "happy_specs.xml" # write to ci_results/rspec/happy_specs.xml
27
30
  end
28
31
 
29
32
  ==== Keeping the CI Harness Out of Production
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.1
1
+ 2.1.2
@@ -74,6 +74,34 @@ module RightDevelop::CI
74
74
  # Default 'measurement'
75
75
  attr_accessor :output_path
76
76
 
77
+ # The name for the RSpec task.
78
+ #
79
+ # Default :spec
80
+ attr_accessor :rspec_name
81
+
82
+ # The description for the RSpec task.
83
+ #
84
+ # Default "Run RSpec examples"
85
+ attr_accessor :rspec_desc
86
+
87
+ # An array of additional options for the RSpec task.
88
+ #
89
+ # Default: []
90
+ #
91
+ # Use like:
92
+ # rspec_opts = ["-t", "~slow_specs"]
93
+ attr_accessor :rspec_opts
94
+
95
+ # The name for the Cucumber task.
96
+ #
97
+ # Default :cucumber
98
+ attr_accessor :cucumber_name
99
+
100
+ # The description for the Cucumber task.
101
+ #
102
+ # Default "Run Cucumber examples"
103
+ attr_accessor :cucumber_desc
104
+
77
105
  def initialize(*args)
78
106
  @ci_namespace = args.shift || :ci
79
107
 
@@ -81,6 +109,11 @@ module RightDevelop::CI
81
109
 
82
110
  @output_path ||= 'measurement'
83
111
  @rspec_output ||= 'rspec.xml'
112
+ @rspec_name ||= :spec
113
+ @rspec_desc ||= "Run RSpec examples"
114
+ @cucumber_name ||= :cucumber
115
+ @cucumber_desc ||= "Run Cucumber examples"
116
+ @rspec_opts ||= []
84
117
 
85
118
  namespace @ci_namespace do
86
119
  task :prep do
@@ -90,22 +123,26 @@ module RightDevelop::CI
90
123
  end
91
124
 
92
125
  if defined?(::RSpec::Core::RakeTask)
126
+ default_opts = ['-r', 'right_develop/ci',
127
+ '-f', JavaSpecFormatter.name,
128
+ '-o', File.join(@output_path, 'rspec', @rspec_output)]
129
+
93
130
  # RSpec 2
94
- desc "Run RSpec examples"
95
- RSpec::Core::RakeTask.new(:spec => :prep) do |t|
96
- t.rspec_opts = ['-r', 'right_develop/ci',
97
- '-f', JavaSpecFormatter.name,
98
- '-o', File.join(@output_path, 'rspec', @rspec_output)]
131
+ desc @rspec_desc
132
+ RSpec::Core::RakeTask.new(@rspec_name => :prep) do |t|
133
+ t.rspec_opts = default_opts + @rspec_opts
99
134
  unless self.rspec_pattern.nil?
100
135
  t.pattern = self.rspec_pattern
101
136
  end
102
137
  end
103
138
  elsif defined?(::Spec::Rake::SpecTask)
139
+ default_opts = ['-r', 'right_develop/ci',
140
+ '-f', JavaSpecFormatter.name + ":" + File.join(@output_path, 'rspec', @rspec_output)]
141
+
104
142
  # RSpec 1
105
- Spec::Rake::SpecTask.new(:spec => :prep) do |t|
106
- desc "Run RSpec Examples"
107
- t.spec_opts = ['-r', 'right_develop/ci',
108
- '-f', JavaSpecFormatter.name + ":" + File.join(@output_path, 'rspec', @rspec_output)]
143
+ Spec::Rake::SpecTask.new(@rspec_name => :prep) do |t|
144
+ desc @rspec_desc
145
+ t.spec_opts = default_opts + @rspec_opts
109
146
  unless self.rspec_pattern.nil?
110
147
  t.spec_files = FileList[self.rspec_pattern]
111
148
  end
@@ -114,8 +151,7 @@ module RightDevelop::CI
114
151
  raise LoadError, "Cannot define CI rake task: unsupported RSpec version"
115
152
  end
116
153
 
117
- desc "Run Cucumber features"
118
- Cucumber::Rake::Task.new do |t|
154
+ Cucumber::Rake::Task.new(@cucumber_name, @cucumber_desc) do |t|
119
155
  t.cucumber_opts = ['--no-color',
120
156
  '--format', JavaCucumberFormatter.name,
121
157
  '--out', File.join(@output_path, 'cucumber')]
@@ -6,6 +6,14 @@ module RightDevelop::CI
6
6
  # in Java class names.
7
7
  JAVA_CLASS_NAME = /[A-Za-z0-9_]/
8
8
 
9
+ # The dot character gets special treatment: even if we XML-escape it, Jenkins will assume
10
+ # that it functions as a package separator. So, we'll replace it with an equivalent Unicode
11
+ # character. Hooray homographic character attacks!
12
+ JAVA_PACKAGE_SEPARATOR = '.'
13
+
14
+ # Replacement codepoint that looks a bit like a period
15
+ JAVE_PACKAGE_SEPARATOR_HOMOGLYPH = '·'
16
+
9
17
  # Make a string suitable for parsing by Jenkins JUnit display plugin by escaping any non-valid
10
18
  # Java class name characters as an XML entity. This prevents Jenkins from interpreting "hi1.2"
11
19
  # as a package-and-class name.
@@ -18,6 +26,8 @@ module RightDevelop::CI
18
26
  name.each_char do |chr|
19
27
  if chr =~ JAVA_CLASS_NAME
20
28
  result << chr
29
+ elsif chr == JAVA_PACKAGE_SEPARATOR
30
+ result << JAVE_PACKAGE_SEPARATOR_HOMOGLYPH
21
31
  else
22
32
  chr = chr.unpack('U')[0].to_s(16)
23
33
  result << "&#x#{chr};"
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{right_develop}
8
- s.version = "2.1.1"
8
+ s.version = "2.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tony Spataro"]
12
- s.date = %q{2014-01-21}
12
+ s.date = %q{2014-03-24}
13
13
  s.default_executable = %q{right_develop}
14
14
  s.description = %q{A toolkit of development tools created by RightScale.}
15
15
  s.email = %q{support@rightscale.com}
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
19
19
  "README.rdoc"
20
20
  ]
21
21
  s.files = [
22
- ".ruby-version",
23
22
  "CHANGELOG.rdoc",
24
23
  "LICENSE",
25
24
  "README.rdoc",
@@ -53,42 +52,43 @@ Gem::Specification.new do |s|
53
52
  s.homepage = %q{https://github.com/rightscale/right_develop}
54
53
  s.licenses = ["MIT"]
55
54
  s.require_paths = ["lib"]
56
- s.rubygems_version = %q{1.6.2}
55
+ s.rubygems_version = %q{1.3.7}
57
56
  s.summary = %q{Reusable dev & test code.}
58
57
 
59
58
  if s.respond_to? :specification_version then
59
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
60
60
  s.specification_version = 3
61
61
 
62
62
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
63
- s.add_runtime_dependency(%q<rake>, ["< 0.10", ">= 0.8.7"])
63
+ s.add_runtime_dependency(%q<rake>, [">= 0.8.7", "< 0.10"])
64
64
  s.add_runtime_dependency(%q<right_support>, ["~> 2.0"])
65
65
  s.add_runtime_dependency(%q<builder>, ["~> 3.0"])
66
- s.add_runtime_dependency(%q<rspec>, ["< 3.0", ">= 1.3"])
67
- s.add_runtime_dependency(%q<cucumber>, ["< 1.3.3", "~> 1.0"])
68
- s.add_runtime_dependency(%q<trollop>, ["< 3.0", ">= 1.0"])
66
+ s.add_runtime_dependency(%q<rspec>, [">= 1.3", "< 3.0"])
67
+ s.add_runtime_dependency(%q<cucumber>, ["~> 1.0", "< 1.3.3"])
68
+ s.add_runtime_dependency(%q<trollop>, [">= 1.0", "< 3.0"])
69
69
  s.add_runtime_dependency(%q<right_git>, ["~> 0.1.0"])
70
70
  s.add_runtime_dependency(%q<right_aws>, [">= 2.1.0"])
71
71
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
72
72
  s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
73
73
  else
74
- s.add_dependency(%q<rake>, ["< 0.10", ">= 0.8.7"])
74
+ s.add_dependency(%q<rake>, [">= 0.8.7", "< 0.10"])
75
75
  s.add_dependency(%q<right_support>, ["~> 2.0"])
76
76
  s.add_dependency(%q<builder>, ["~> 3.0"])
77
- s.add_dependency(%q<rspec>, ["< 3.0", ">= 1.3"])
78
- s.add_dependency(%q<cucumber>, ["< 1.3.3", "~> 1.0"])
79
- s.add_dependency(%q<trollop>, ["< 3.0", ">= 1.0"])
77
+ s.add_dependency(%q<rspec>, [">= 1.3", "< 3.0"])
78
+ s.add_dependency(%q<cucumber>, ["~> 1.0", "< 1.3.3"])
79
+ s.add_dependency(%q<trollop>, [">= 1.0", "< 3.0"])
80
80
  s.add_dependency(%q<right_git>, ["~> 0.1.0"])
81
81
  s.add_dependency(%q<right_aws>, [">= 2.1.0"])
82
82
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
83
83
  s.add_dependency(%q<rdoc>, [">= 2.4.2"])
84
84
  end
85
85
  else
86
- s.add_dependency(%q<rake>, ["< 0.10", ">= 0.8.7"])
86
+ s.add_dependency(%q<rake>, [">= 0.8.7", "< 0.10"])
87
87
  s.add_dependency(%q<right_support>, ["~> 2.0"])
88
88
  s.add_dependency(%q<builder>, ["~> 3.0"])
89
- s.add_dependency(%q<rspec>, ["< 3.0", ">= 1.3"])
90
- s.add_dependency(%q<cucumber>, ["< 1.3.3", "~> 1.0"])
91
- s.add_dependency(%q<trollop>, ["< 3.0", ">= 1.0"])
89
+ s.add_dependency(%q<rspec>, [">= 1.3", "< 3.0"])
90
+ s.add_dependency(%q<cucumber>, ["~> 1.0", "< 1.3.3"])
91
+ s.add_dependency(%q<trollop>, [">= 1.0", "< 3.0"])
92
92
  s.add_dependency(%q<right_git>, ["~> 0.1.0"])
93
93
  s.add_dependency(%q<right_aws>, [">= 2.1.0"])
94
94
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
data/right_develop.rconf CHANGED
@@ -1,8 +1,14 @@
1
1
  ruby do
2
- version 'ruby-1.8.7-p371'
3
- rubygems '1.8.25' # jeweler gem is sensitive to rubygems version
4
- gemset 'right_develop'
2
+ # this is a lie! this gem must be compatible with 1.8.7, 1.9.x and 2.x.
3
+ # we're specifying the least common denominator here, as the bulk of our
4
+ # code is still tied to Ruby 1.8.
5
+ version 'ree-1.8.7-2012.02'
6
+ # jeweler gem is sensitive to rubygems version; moreover, RubyGems > 1.3 sometimes generates
7
+ # gem indexes that are not readable by 1.3 ... once again, take the least common denominator
8
+ # approach.
9
+ rubygems '1.3.7'
5
10
  end
11
+
6
12
  bundler do
7
13
  version '1.3.5'
8
14
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: right_develop
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
5
- prerelease:
4
+ hash: 15
5
+ prerelease: false
6
6
  segments:
7
7
  - 2
8
8
  - 1
9
- - 1
10
- version: 2.1.1
9
+ - 2
10
+ version: 2.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tony Spataro
@@ -15,21 +15,13 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2014-02-13 00:00:00 -08:00
18
+ date: 2014-03-24 00:00:00 -07:00
19
19
  default_executable: right_develop
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- type: :runtime
23
22
  version_requirements: &id001 !ruby/object:Gem::Requirement
24
23
  none: false
25
24
  requirements:
26
- - - <
27
- - !ruby/object:Gem::Version
28
- hash: 31
29
- segments:
30
- - 0
31
- - 10
32
- version: "0.10"
33
25
  - - ">="
34
26
  - !ruby/object:Gem::Version
35
27
  hash: 49
@@ -38,11 +30,18 @@ dependencies:
38
30
  - 8
39
31
  - 7
40
32
  version: 0.8.7
41
- prerelease: false
42
- requirement: *id001
33
+ - - <
34
+ - !ruby/object:Gem::Version
35
+ hash: 31
36
+ segments:
37
+ - 0
38
+ - 10
39
+ version: "0.10"
43
40
  name: rake
44
- - !ruby/object:Gem::Dependency
41
+ requirement: *id001
42
+ prerelease: false
45
43
  type: :runtime
44
+ - !ruby/object:Gem::Dependency
46
45
  version_requirements: &id002 !ruby/object:Gem::Requirement
47
46
  none: false
48
47
  requirements:
@@ -53,11 +52,11 @@ dependencies:
53
52
  - 2
54
53
  - 0
55
54
  version: "2.0"
56
- prerelease: false
57
- requirement: *id002
58
55
  name: right_support
59
- - !ruby/object:Gem::Dependency
56
+ requirement: *id002
57
+ prerelease: false
60
58
  type: :runtime
59
+ - !ruby/object:Gem::Dependency
61
60
  version_requirements: &id003 !ruby/object:Gem::Requirement
62
61
  none: false
63
62
  requirements:
@@ -68,21 +67,14 @@ dependencies:
68
67
  - 3
69
68
  - 0
70
69
  version: "3.0"
71
- prerelease: false
72
- requirement: *id003
73
70
  name: builder
74
- - !ruby/object:Gem::Dependency
71
+ requirement: *id003
72
+ prerelease: false
75
73
  type: :runtime
74
+ - !ruby/object:Gem::Dependency
76
75
  version_requirements: &id004 !ruby/object:Gem::Requirement
77
76
  none: false
78
77
  requirements:
79
- - - <
80
- - !ruby/object:Gem::Version
81
- hash: 7
82
- segments:
83
- - 3
84
- - 0
85
- version: "3.0"
86
78
  - - ">="
87
79
  - !ruby/object:Gem::Version
88
80
  hash: 9
@@ -90,14 +82,28 @@ dependencies:
90
82
  - 1
91
83
  - 3
92
84
  version: "1.3"
93
- prerelease: false
94
- requirement: *id004
85
+ - - <
86
+ - !ruby/object:Gem::Version
87
+ hash: 7
88
+ segments:
89
+ - 3
90
+ - 0
91
+ version: "3.0"
95
92
  name: rspec
96
- - !ruby/object:Gem::Dependency
93
+ requirement: *id004
94
+ prerelease: false
97
95
  type: :runtime
96
+ - !ruby/object:Gem::Dependency
98
97
  version_requirements: &id005 !ruby/object:Gem::Requirement
99
98
  none: false
100
99
  requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ hash: 15
103
+ segments:
104
+ - 1
105
+ - 0
106
+ version: "1.0"
101
107
  - - <
102
108
  - !ruby/object:Gem::Version
103
109
  hash: 29
@@ -106,21 +112,21 @@ dependencies:
106
112
  - 3
107
113
  - 3
108
114
  version: 1.3.3
109
- - - ~>
115
+ name: cucumber
116
+ requirement: *id005
117
+ prerelease: false
118
+ type: :runtime
119
+ - !ruby/object:Gem::Dependency
120
+ version_requirements: &id006 !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ">="
110
124
  - !ruby/object:Gem::Version
111
125
  hash: 15
112
126
  segments:
113
127
  - 1
114
128
  - 0
115
129
  version: "1.0"
116
- prerelease: false
117
- requirement: *id005
118
- name: cucumber
119
- - !ruby/object:Gem::Dependency
120
- type: :runtime
121
- version_requirements: &id006 !ruby/object:Gem::Requirement
122
- none: false
123
- requirements:
124
130
  - - <
125
131
  - !ruby/object:Gem::Version
126
132
  hash: 7
@@ -128,18 +134,11 @@ dependencies:
128
134
  - 3
129
135
  - 0
130
136
  version: "3.0"
131
- - - ">="
132
- - !ruby/object:Gem::Version
133
- hash: 15
134
- segments:
135
- - 1
136
- - 0
137
- version: "1.0"
138
- prerelease: false
139
- requirement: *id006
140
137
  name: trollop
141
- - !ruby/object:Gem::Dependency
138
+ requirement: *id006
139
+ prerelease: false
142
140
  type: :runtime
141
+ - !ruby/object:Gem::Dependency
143
142
  version_requirements: &id007 !ruby/object:Gem::Requirement
144
143
  none: false
145
144
  requirements:
@@ -151,11 +150,11 @@ dependencies:
151
150
  - 1
152
151
  - 0
153
152
  version: 0.1.0
154
- prerelease: false
155
- requirement: *id007
156
153
  name: right_git
157
- - !ruby/object:Gem::Dependency
154
+ requirement: *id007
155
+ prerelease: false
158
156
  type: :runtime
157
+ - !ruby/object:Gem::Dependency
159
158
  version_requirements: &id008 !ruby/object:Gem::Requirement
160
159
  none: false
161
160
  requirements:
@@ -167,11 +166,11 @@ dependencies:
167
166
  - 1
168
167
  - 0
169
168
  version: 2.1.0
170
- prerelease: false
171
- requirement: *id008
172
169
  name: right_aws
170
+ requirement: *id008
171
+ prerelease: false
172
+ type: :runtime
173
173
  - !ruby/object:Gem::Dependency
174
- type: :development
175
174
  version_requirements: &id009 !ruby/object:Gem::Requirement
176
175
  none: false
177
176
  requirements:
@@ -183,11 +182,11 @@ dependencies:
183
182
  - 8
184
183
  - 3
185
184
  version: 1.8.3
186
- prerelease: false
187
- requirement: *id009
188
185
  name: jeweler
189
- - !ruby/object:Gem::Dependency
186
+ requirement: *id009
187
+ prerelease: false
190
188
  type: :development
189
+ - !ruby/object:Gem::Dependency
191
190
  version_requirements: &id010 !ruby/object:Gem::Requirement
192
191
  none: false
193
192
  requirements:
@@ -199,9 +198,10 @@ dependencies:
199
198
  - 4
200
199
  - 2
201
200
  version: 2.4.2
202
- prerelease: false
203
- requirement: *id010
204
201
  name: rdoc
202
+ requirement: *id010
203
+ prerelease: false
204
+ type: :development
205
205
  description: A toolkit of development tools created by RightScale.
206
206
  email: support@rightscale.com
207
207
  executables:
@@ -212,7 +212,6 @@ extra_rdoc_files:
212
212
  - LICENSE
213
213
  - README.rdoc
214
214
  files:
215
- - .ruby-version
216
215
  - CHANGELOG.rdoc
217
216
  - LICENSE
218
217
  - README.rdoc
@@ -272,7 +271,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
272
271
  requirements: []
273
272
 
274
273
  rubyforge_project:
275
- rubygems_version: 1.6.2
274
+ rubygems_version: 1.3.7
276
275
  signing_key:
277
276
  specification_version: 3
278
277
  summary: Reusable dev & test code.
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 1.8.7-p371