xcjobs 0.0.2 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b5962d4c76d0cc02c6c62f205d5b1a23afca67f5
4
- data.tar.gz: d6e04486413d5516d1ea83d91f225651a9a26c97
3
+ metadata.gz: d55bb96a8d15b7cfb189f0cb8b55b971b83066cf
4
+ data.tar.gz: bab8f956c58e238a7ca8da889b18d03e3146ecd7
5
5
  SHA512:
6
- metadata.gz: 151273faa341ac14b9810a399bd865b7215ffddd95310610c1a6c29deb229e16e9bd1367aeb15c2098ea80c7c524332e76022d52394793b663cb54399a0e2983
7
- data.tar.gz: 87b7bcd910a8f5edf3899912883e3736a002f3356ca72034b68cd40cc84fdeda28e6d93650ad13eaf6c6839e5ade97ca9c73bf4f55ca9699253378e32a7443f0
6
+ metadata.gz: 8009f8194b4ae4890ecd77af17d664a5ae4754bf02af0be3a0ae297b6f826874872545d1166b9c99dca863239f32011ca1d6a9bd741d58834a72179496d5f03e
7
+ data.tar.gz: 33d3000abf7185916fa8e2dfaa7b3fd2758b91b0b74bbcf7f9762f76961136c9a29d72297e710d00017ef61427657e1a95a818dec84fa1e932e4679c4b6647f1
@@ -1,3 +1,3 @@
1
1
  module XCJobs
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -28,6 +28,18 @@ module XCJobs
28
28
  @build_settings = {}
29
29
  end
30
30
 
31
+ def project
32
+ if @project
33
+ File.extname(@project).empty? ? "#{@project}.xcodeproj" : @project
34
+ end
35
+ end
36
+
37
+ def workspace
38
+ if @workspace
39
+ File.extname(@workspace).empty? ? "#{@workspace}.xcworkspace" : @workspace
40
+ end
41
+ end
42
+
31
43
  def before_action(&block)
32
44
  @before_action = block
33
45
  end
@@ -153,9 +165,10 @@ module XCJobs
153
165
  if sdk == 'iphonesimulator'
154
166
  add_build_setting('CODE_SIGN_IDENTITY', '""')
155
167
  add_build_setting('CODE_SIGNING_REQUIRED', 'NO')
156
- add_build_setting('GCC_SYMBOLS_PRIVATE_EXTERN', 'NO')
157
168
  end
158
169
 
170
+ add_build_setting('GCC_SYMBOLS_PRIVATE_EXTERN', 'NO')
171
+
159
172
  run(['xcodebuild', 'test'] + options)
160
173
  end
161
174
  end
@@ -174,8 +187,8 @@ module XCJobs
174
187
  raise 'the scheme is required when specifying build_dir' if build_dir && !scheme
175
188
  raise 'cannot specify both a scheme and targets' if scheme && target
176
189
 
177
- CLEAN.include(build_dir)
178
- CLOBBER.include(build_dir)
190
+ CLEAN.include(build_dir) if build_dir
191
+ CLOBBER.include(build_dir) if build_dir
179
192
 
180
193
  desc 'build application'
181
194
  task @name do
@@ -203,8 +216,8 @@ module XCJobs
203
216
  raise 'archive action requires specifying a scheme' unless scheme
204
217
  raise 'cannot specify both a scheme and targets' if scheme && target
205
218
 
206
- CLEAN.include(build_dir)
207
- CLOBBER.include(build_dir)
219
+ CLEAN.include(build_dir) if build_dir
220
+ CLOBBER.include(build_dir) if build_dir
208
221
 
209
222
  desc 'make xcarchive'
210
223
  namespace :build do
@@ -247,6 +260,14 @@ module XCJobs
247
260
  define
248
261
  end
249
262
 
263
+ def archive_path
264
+ @archive_path || (build_dir && scheme ? File.join(build_dir, scheme) : nil)
265
+ end
266
+
267
+ def export_format
268
+ @export_format || 'IPA'
269
+ end
270
+
250
271
  private
251
272
 
252
273
  def define
@@ -258,14 +279,6 @@ module XCJobs
258
279
  end
259
280
  end
260
281
 
261
- def archive_path
262
- @archive_path || (build_dir && scheme ? File.join(build_dir, scheme) : nil)
263
- end
264
-
265
- def export_format
266
- @export_format || 'IPA'
267
- end
268
-
269
282
  def options
270
283
  [].tap do |opts|
271
284
  opts.concat(['-archivePath', archive_path]) if archive_path
@@ -48,6 +48,32 @@ describe XCJobs::Xcodebuild do
48
48
  end
49
49
  end
50
50
 
51
+ context 'When no file extension (project)' do
52
+ let!(:task) do
53
+ XCJobs::Test.new do |t|
54
+ t.project = 'Project'
55
+ t.scheme = 'Scheme'
56
+ end
57
+ end
58
+
59
+ it 'Automatically complemented' do
60
+ expect(task.project).to eq 'Project.xcodeproj'
61
+ end
62
+ end
63
+
64
+ context 'When no file extension (workspace)' do
65
+ let!(:task) do
66
+ XCJobs::Test.new do |t|
67
+ t.workspace = 'Workspace'
68
+ t.scheme = 'Scheme'
69
+ end
70
+ end
71
+
72
+ it 'Automatically complemented' do
73
+ expect(task.workspace).to eq 'Workspace.xcworkspace'
74
+ end
75
+ end
76
+
51
77
  describe 'test project with simulator' do
52
78
  let!(:task) do
53
79
  XCJobs::Test.new do |t|
@@ -163,7 +189,7 @@ describe XCJobs::Xcodebuild do
163
189
 
164
190
  it 'executes the appropriate commands' do
165
191
  subject.invoke
166
- expect(@commands).to eq ['xcodebuild test -project Example.xcodeproj -scheme Example -sdk iphoneos -configuration Debug -destination platform=iOS,id=8d18c8c4d1a6988ac4a70d370bfcbe99fef3f7b5']
192
+ expect(@commands).to eq ['xcodebuild test -project Example.xcodeproj -scheme Example -sdk iphoneos -configuration Debug -destination platform=iOS,id=8d18c8c4d1a6988ac4a70d370bfcbe99fef3f7b5 GCC_SYMBOLS_PRIVATE_EXTERN=NO']
167
193
  end
168
194
  end
169
195
  end
@@ -198,6 +224,32 @@ describe XCJobs::Xcodebuild do
198
224
  end
199
225
  end
200
226
 
227
+ context 'When no file extension (project)' do
228
+ let!(:task) do
229
+ XCJobs::Build.new do |t|
230
+ t.project = 'Project'
231
+ t.scheme = 'Scheme'
232
+ end
233
+ end
234
+
235
+ it 'Automatically complemented' do
236
+ expect(task.project).to eq 'Project.xcodeproj'
237
+ end
238
+ end
239
+
240
+ context 'When no file extension (workspace)' do
241
+ let!(:task) do
242
+ XCJobs::Build.new do |t|
243
+ t.workspace = 'Workspace'
244
+ t.scheme = 'Scheme'
245
+ end
246
+ end
247
+
248
+ it 'Automatically complemented' do
249
+ expect(task.workspace).to eq 'Workspace.xcworkspace'
250
+ end
251
+ end
252
+
201
253
  describe 'simple task with a project' do
202
254
  let!(:task) do
203
255
  XCJobs::Build.new do |t|
@@ -419,4 +471,92 @@ describe XCJobs::Xcodebuild do
419
471
  end
420
472
  end
421
473
  end
474
+
475
+ describe XCJobs::Export do
476
+ describe 'export task for IPA' do
477
+ let!(:task) do
478
+ XCJobs::Export.new do |t|
479
+ t.archive_path = 'build/Example'
480
+ t.export_format = 'IPA'
481
+ t.export_path = 'build/Example.ipa'
482
+ t.export_provisioning_profile = 'Ad_Hoc.mobileprovision'
483
+ t.export_signing_identity = 'iPhone Distribution: kishikawa katsumi'
484
+ end
485
+ end
486
+
487
+ it 'configures the archive path' do
488
+ expect(task.archive_path).to eq 'build/Example'
489
+ end
490
+
491
+ it 'configures the export format' do
492
+ expect(task.export_format).to eq 'IPA'
493
+ end
494
+
495
+ it 'configures the export path' do
496
+ expect(task.export_path).to eq 'build/Example.ipa'
497
+ end
498
+
499
+ it 'configures the export provisioning profile' do
500
+ expect(task.export_provisioning_profile).to eq 'Ad_Hoc.mobileprovision'
501
+ end
502
+
503
+ it 'configures the export signing identity' do
504
+ expect(task.export_signing_identity).to eq 'iPhone Distribution: kishikawa katsumi'
505
+ end
506
+
507
+ describe 'tasks' do
508
+ describe 'export' do
509
+ subject { Rake.application['build:export'] }
510
+
511
+ it 'executes the appropriate commands' do
512
+ subject.invoke
513
+ expect(@commands).to eq ['xcodebuild -exportArchive -archivePath build/Example -exportFormat IPA -exportPath build/Example.ipa -exportProvisioningProfile Ad_Hoc.mobileprovision -exportSigningIdentity iPhone Distribution: kishikawa katsumi']
514
+ end
515
+ end
516
+ end
517
+ end
518
+
519
+ describe 'export task for PKG' do
520
+ let!(:task) do
521
+ XCJobs::Export.new do |t|
522
+ t.archive_path = 'build/Example'
523
+ t.export_format = 'PKG'
524
+ t.export_path = 'build/Example.pkg'
525
+ t.export_signing_identity = 'Developer ID Application'
526
+ t.export_installer_identity = 'Developer ID Installer'
527
+ end
528
+ end
529
+
530
+ it 'configures the archive path' do
531
+ expect(task.archive_path).to eq 'build/Example'
532
+ end
533
+
534
+ it 'configures the export format' do
535
+ expect(task.export_format).to eq 'PKG'
536
+ end
537
+
538
+ it 'configures the export path' do
539
+ expect(task.export_path).to eq 'build/Example.pkg'
540
+ end
541
+
542
+ it 'configures the export signing identity' do
543
+ expect(task.export_signing_identity).to eq 'Developer ID Application'
544
+ end
545
+
546
+ it 'configures the export installer identity' do
547
+ expect(task.export_installer_identity).to eq 'Developer ID Installer'
548
+ end
549
+
550
+ describe 'tasks' do
551
+ describe 'export' do
552
+ subject { Rake.application['build:export'] }
553
+
554
+ it 'executes the appropriate commands' do
555
+ subject.invoke
556
+ expect(@commands).to eq ['xcodebuild -exportArchive -archivePath build/Example -exportFormat PKG -exportPath build/Example.pkg -exportSigningIdentity Developer ID Application -exportInstallerIdentity Developer ID Installer']
557
+ end
558
+ end
559
+ end
560
+ end
561
+ end
422
562
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcjobs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - kishikawa katsumi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-28 00:00:00.000000000 Z
11
+ date: 2014-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler