xctasks 0.4.0 → 0.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 144f3150b16d09a1fea78010ba6035e2dcf7fff9
4
- data.tar.gz: b73a4a156f8aebe126ba2abdcdf1e52c7057b899
3
+ metadata.gz: e5d0e8565d04149c6de73c61d731fb0472c24d37
4
+ data.tar.gz: 84bff82ae95bdb2b2a2b1f0f67465fd412783aab
5
5
  SHA512:
6
- metadata.gz: 521a4c5fe8279c39b85813d33791bc8042c4407a6415f65775788a8425c6a4ff3a494191b50ea4971f1156d39d93cc5ea6e884cdeb28c0c839b8497eac9b157e
7
- data.tar.gz: 8fc6d66394133b30b593d6357bcb16ce20c4666d6621374888f34e6e28cb7153ef8cdb2a5f3d1b89143bab6e04980748cafd59bc626a3634467b84fea5c54984
6
+ metadata.gz: 10038f24a8ed42d632c5a72b07a0b57a198aeea624b1f501001eb11aa55f346610d0fc800d0fda550eae13404f3ab058b4a160c5d1a5c750d358744dcb65ef56
7
+ data.tar.gz: f67207b2a07fc77b22a9f656d1371af67f98e591ab34a28ba65617e09187f92d443084ab071ecb17faec396a8a3bce41ead65f47ab8e934985becee9c6d0945c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # XCTasks Changelog
2
2
 
3
+ ## v0.4.1
4
+
5
+ * Reworked output redirection into an optional feature.
6
+
7
+ ## v0.4.0
8
+
9
+ * Added redirection of stderr to /dev/null
10
+ * Updated dependency on Nokogiri to 1.6
11
+
3
12
  ## v0.3.0
4
13
 
5
14
  * Added support for writing environment variables into schemes.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xctasks (0.4.0)
4
+ xctasks (0.4.1)
5
5
  nokogiri (~> 1.6, >= 1.6.3.1)
6
6
  rake (~> 10.0, >= 10.0.0)
7
7
 
@@ -100,7 +100,7 @@ module XCTasks
100
100
  class Configuration
101
101
  SETTINGS = [:workspace, :schemes_dir, :sdk, :runner, :xctool_path,
102
102
  :xcodebuild_path, :settings, :destinations, :actions,
103
- :scheme, :ios_versions, :output_log, :env]
103
+ :scheme, :ios_versions, :output_log, :env, :redirect_stderr]
104
104
  HELPERS = [:destination, :xctool?, :xcpretty?, :xcodebuild?]
105
105
 
106
106
  # Configures delegations to pass through configuration accessor when extended
@@ -125,6 +125,7 @@ module XCTasks
125
125
  @destinations = []
126
126
  @actions = %w{clean build test}
127
127
  @env = {}
128
+ @redirect_stderr = false
128
129
  end
129
130
 
130
131
  def runner=(runner)
@@ -138,6 +139,14 @@ module XCTasks
138
139
  @sdk = sdk.to_sym
139
140
  end
140
141
 
142
+ def redirect_stderr=(redirect_stderr)
143
+ if redirect_stderr == true
144
+ @redirect_stderr = '/dev/null'
145
+ else
146
+ @redirect_stderr = redirect_stderr
147
+ end
148
+ end
149
+
141
150
  def destination(specifier = {})
142
151
  if specifier.kind_of?(String)
143
152
  raise ArgumentError, "Cannot configure a destination via a block when a complete String specifier is provided" if block_given?
@@ -226,18 +235,19 @@ module XCTasks
226
235
  end
227
236
 
228
237
  def run_tests(options = {})
229
- ios_version = options[:ios_version]
238
+ ios_version = options[:ios_version]
230
239
  XCTasks::Command.run(%q{killall "iPhone Simulator"}, false) if sdk == :iphonesimulator
231
240
 
232
- output_log_command = output_log ? " | tee -a #{output_log} " : ' '
241
+ output_log_command = output_log ? "| tee -a #{output_log}" : nil
242
+ redirect_suffix = redirect_stderr ? "2> #{redirect_stderr}" : nil
233
243
  success = if xctool?
234
244
  actions_arg << " -freshSimulator" if ios_version
235
- Command.run("#{xctool_path} -workspace #{workspace} -scheme '#{scheme}' -sdk #{sdk}#{ios_version}#{destination_arg}#{actions_arg}#{settings_arg}#{output_log_command}".strip)
245
+ Command.run(["#{xctool_path} -workspace #{workspace} -scheme '#{scheme}' -sdk #{sdk}#{ios_version}", destination_arg, actions_arg, settings_arg, redirect_suffix, output_log_command].grep(String).join(' '))
236
246
  elsif xcodebuild?
237
- Command.run("#{xcodebuild_path} -workspace #{workspace} -scheme '#{scheme}' -sdk #{sdk}#{ios_version}#{destination_arg}#{actions_arg}#{settings_arg}#{output_log_command}2>/dev/null".strip)
247
+ Command.run(["#{xcodebuild_path} -workspace #{workspace} -scheme '#{scheme}' -sdk #{sdk}#{ios_version}", destination_arg, actions_arg, settings_arg, redirect_suffix, output_log_command].grep(String).join(' '))
238
248
  elsif xcpretty?
239
249
  xcpretty_bin = runner.is_a?(String) ? runner : "xcpretty -c"
240
- Command.run("#{xcodebuild_path} -workspace #{workspace} -scheme '#{scheme}' -sdk #{sdk}#{ios_version}#{destination_arg}#{actions_arg}#{settings_arg}#{output_log_command}2>/dev/null | #{xcpretty_bin} ; exit ${PIPESTATUS[0]}".strip)
250
+ Command.run(["#{xcodebuild_path} -workspace #{workspace} -scheme '#{scheme}' -sdk #{sdk}#{ios_version}", destination_arg, actions_arg, settings_arg, redirect_suffix, output_log_command, "| #{xcpretty_bin} ; exit ${PIPESTATUS[0]}"].grep(String).join(' '))
241
251
  end
242
252
 
243
253
  XCTasks::TestReport.instance.add_result(self, options, success)
@@ -245,19 +255,19 @@ module XCTasks
245
255
 
246
256
  def settings_arg
247
257
  if settings.any?
248
- " " << settings.map { |k,v| "#{k}=#{v}"}.join(' ')
258
+ settings.map { |k,v| "#{k}=#{v}"}.join(' ')
249
259
  else
250
260
  nil
251
261
  end
252
262
  end
253
263
 
254
264
  def actions_arg
255
- " " << actions.join(' ')
265
+ actions.join(' ')
256
266
  end
257
267
 
258
268
  def destination_arg
259
269
  if destinations.any?
260
- " " << destinations.map { |d| "-destination #{d}" }.join(' ')
270
+ destinations.map { |d| "-destination #{d}" }.join(' ')
261
271
  else
262
272
  nil
263
273
  end
@@ -1,3 +1,3 @@
1
1
  module XCTasks
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -81,6 +81,7 @@ describe XCTasks::TestTask do
81
81
  t.workspace = 'LayerKit.xcworkspace'
82
82
  t.schemes_dir = 'Tests/Schemes'
83
83
  t.runner = :xcpretty
84
+ t.redirect_stderr = true
84
85
  t.subtasks = { unit: 'Unit Tests', functional: 'Functional Tests' }
85
86
  end
86
87
  end
@@ -115,7 +116,7 @@ describe XCTasks::TestTask do
115
116
  @commands.should == ["mkdir -p LayerKit.xcworkspace/xcshareddata/xcschemes",
116
117
  "cp [] LayerKit.xcworkspace/xcshareddata/xcschemes",
117
118
  "killall \"iPhone Simulator\"",
118
- "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Unit Tests' -sdk iphonesimulator clean build test 2>/dev/null | xcpretty -c ; exit ${PIPESTATUS[0]}"]
119
+ "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Unit Tests' -sdk iphonesimulator clean build test 2> /dev/null | xcpretty -c ; exit ${PIPESTATUS[0]}"]
119
120
  end
120
121
  end
121
122
 
@@ -127,7 +128,7 @@ describe XCTasks::TestTask do
127
128
  @commands.should == ["mkdir -p LayerKit.xcworkspace/xcshareddata/xcschemes",
128
129
  "cp [] LayerKit.xcworkspace/xcshareddata/xcschemes",
129
130
  "killall \"iPhone Simulator\"",
130
- "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Functional Tests' -sdk iphonesimulator clean build test 2>/dev/null | xcpretty -c ; exit ${PIPESTATUS[0]}"]
131
+ "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Functional Tests' -sdk iphonesimulator clean build test 2> /dev/null | xcpretty -c ; exit ${PIPESTATUS[0]}"]
131
132
  end
132
133
  end
133
134
  end
@@ -153,7 +154,7 @@ describe XCTasks::TestTask do
153
154
  @commands.should == ["mkdir -p LayerKit.xcworkspace/xcshareddata/xcschemes",
154
155
  "cp [] LayerKit.xcworkspace/xcshareddata/xcschemes",
155
156
  "killall \"iPhone Simulator\"",
156
- "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Unit Tests' -sdk iphonesimulator clean build test | tee -a output.log 2>/dev/null | xcpretty -s ; exit ${PIPESTATUS[0]}"]
157
+ "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Unit Tests' -sdk iphonesimulator clean build test | tee -a output.log | xcpretty -s ; exit ${PIPESTATUS[0]}"]
157
158
  end
158
159
  end
159
160
 
@@ -165,7 +166,7 @@ describe XCTasks::TestTask do
165
166
  @commands.should == ["mkdir -p LayerKit.xcworkspace/xcshareddata/xcschemes",
166
167
  "cp [] LayerKit.xcworkspace/xcshareddata/xcschemes",
167
168
  "killall \"iPhone Simulator\"",
168
- "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Functional Tests' -sdk iphonesimulator clean build test | tee -a output.log 2>/dev/null | xcpretty -s ; exit ${PIPESTATUS[0]}"]
169
+ "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Functional Tests' -sdk iphonesimulator clean build test | tee -a output.log | xcpretty -s ; exit ${PIPESTATUS[0]}"]
169
170
  end
170
171
  end
171
172
  end
@@ -247,7 +248,7 @@ describe XCTasks::TestTask do
247
248
  subject.invoke
248
249
  @commands.should == [
249
250
  "killall \"iPhone Simulator\"",
250
- "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Functional Tests' -sdk iphonesimulator clean build test 2>/dev/null"
251
+ "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Functional Tests' -sdk iphonesimulator clean build test"
251
252
  ]
252
253
  end
253
254
  end
@@ -267,6 +268,7 @@ describe XCTasks::TestTask do
267
268
  t.subtask :functional do |s|
268
269
  s.runner = :xcodebuild
269
270
  s.scheme = 'Functional Tests'
271
+ s.redirect_stderr = 'stderr.log'
270
272
  s.destination do |d|
271
273
  d.platform = :iossimulator
272
274
  d.name = 'iPad Retina'
@@ -299,7 +301,7 @@ describe XCTasks::TestTask do
299
301
  subject.invoke
300
302
  @commands.should == [
301
303
  "killall \"iPhone Simulator\"",
302
- "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Functional Tests' -sdk iphonesimulator -destination platform='iOS Simulator',name='iPad Retina',OS='latest' -destination platform\\=iOS\\ Simulator,OS\\=7.1,name\\=iPhone\\ Retina\\ \\(4-inch\\) -destination platform='iOS',id='437750527b43cff55a46f42ae86dbf870c7591b1' clean build test 2>/dev/null"]
304
+ "/usr/bin/xcodebuild -workspace LayerKit.xcworkspace -scheme 'Functional Tests' -sdk iphonesimulator -destination platform='iOS Simulator',name='iPad Retina',OS='latest' -destination platform\\=iOS\\ Simulator,OS\\=7.1,name\\=iPhone\\ Retina\\ \\(4-inch\\) -destination platform='iOS',id='437750527b43cff55a46f42ae86dbf870c7591b1' clean build test 2> stderr.log"]
303
305
  end
304
306
  end
305
307
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xctasks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Blake Watters