xcjobs 0.2.5 → 0.3.0
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 +4 -4
- data/lib/xcjobs/version.rb +1 -1
- data/lib/xcjobs/xcodebuild.rb +15 -5
- data/spec/xcodebuild_spec.rb +102 -0
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e4c4306b452320be5d2c072f1698f3c7d8f7a4fb
|
|
4
|
+
data.tar.gz: d6a07bf56db736e8930823b9ab9ac2b9bcada113
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 09b03987ce8067398f09a528f910b0312af2f9fd6b6e94d9d84d66e135795da91da749453159645e78d2a73e415024c3b9fae2b0b16db79e3bb590303f73554a
|
|
7
|
+
data.tar.gz: 1e14499775964041a9d4ddad1a25fbc224228953c8118df02bb4ec4478437e71e68ec112b41b776de91fca999f347a5800588e2fecb7b2f9d068b3acc3e6a90f
|
data/lib/xcjobs/version.rb
CHANGED
data/lib/xcjobs/xcodebuild.rb
CHANGED
|
@@ -26,12 +26,15 @@ module XCJobs
|
|
|
26
26
|
attr_reader :provisioning_profile_name
|
|
27
27
|
attr_reader :provisioning_profile_uuid
|
|
28
28
|
|
|
29
|
+
attr_accessor :unsetenv_others
|
|
30
|
+
|
|
29
31
|
def initialize(name)
|
|
30
32
|
$stdout.sync = $stderr.sync = true
|
|
31
33
|
|
|
32
34
|
@name = name
|
|
33
35
|
@destinations = []
|
|
34
36
|
@build_settings = {}
|
|
37
|
+
@unsetenv_others = false
|
|
35
38
|
end
|
|
36
39
|
|
|
37
40
|
def project
|
|
@@ -82,8 +85,11 @@ module XCJobs
|
|
|
82
85
|
puts cmd.join(" ")
|
|
83
86
|
end
|
|
84
87
|
|
|
88
|
+
env = {}
|
|
89
|
+
options = { unsetenv_others: unsetenv_others }
|
|
90
|
+
|
|
85
91
|
if @formatter
|
|
86
|
-
Open3.pipeline_r(cmd, [@formatter]) do |stdout, wait_thrs|
|
|
92
|
+
Open3.pipeline_r([env] + cmd + [options], [@formatter]) do |stdout, wait_thrs|
|
|
87
93
|
output = []
|
|
88
94
|
while line = stdout.gets
|
|
89
95
|
puts line
|
|
@@ -98,7 +104,7 @@ module XCJobs
|
|
|
98
104
|
end
|
|
99
105
|
end
|
|
100
106
|
else
|
|
101
|
-
Open3.popen2e(*cmd) do |stdin, stdout_err, wait_thr|
|
|
107
|
+
Open3.popen2e(env, *cmd, options) do |stdin, stdout_err, wait_thr|
|
|
102
108
|
output = []
|
|
103
109
|
while line = stdout_err.gets
|
|
104
110
|
puts line
|
|
@@ -207,7 +213,7 @@ module XCJobs
|
|
|
207
213
|
targetSettings.each do |target, settings|
|
|
208
214
|
if settings['PRODUCT_TYPE'] == 'com.apple.product-type.framework'
|
|
209
215
|
if sdk.start_with?('iphone') && settings['ONLY_ACTIVE_ARCH'] == 'NO'
|
|
210
|
-
target_dir = settings['OBJECT_FILE_DIR_normal'].gsub('Build/Intermediates', "Build/Intermediates/CodeCoverage
|
|
216
|
+
target_dir = settings['OBJECT_FILE_DIR_normal'].gsub('Build/Intermediates', "Build/Intermediates/CodeCoverage/Intermediates")
|
|
211
217
|
executable_name = settings['EXECUTABLE_NAME']
|
|
212
218
|
target_path = File.join(File.join(target_dir, settings['CURRENT_ARCH']), executable_name)
|
|
213
219
|
else
|
|
@@ -219,7 +225,7 @@ module XCJobs
|
|
|
219
225
|
|
|
220
226
|
end
|
|
221
227
|
|
|
222
|
-
code_coverage_dir = settings['BUILD_DIR'].gsub('Build/Products', "Build/Intermediates/CodeCoverage
|
|
228
|
+
code_coverage_dir = settings['BUILD_DIR'].gsub('Build/Products', "/Build/Intermediates/CodeCoverage/")
|
|
223
229
|
profdata_path = File.join(code_coverage_dir, 'Coverage.profdata')
|
|
224
230
|
|
|
225
231
|
show_coverage(profdata_path, target_path)
|
|
@@ -351,9 +357,12 @@ module XCJobs
|
|
|
351
357
|
attr_accessor :export_signing_identity
|
|
352
358
|
attr_accessor :export_installer_identity
|
|
353
359
|
attr_accessor :export_with_original_signing_identity
|
|
360
|
+
attr_accessor :options_plist
|
|
354
361
|
|
|
355
362
|
def initialize(name = :export)
|
|
356
363
|
super
|
|
364
|
+
self.unsetenv_others = true
|
|
365
|
+
@export_format = 'IPA'
|
|
357
366
|
yield self if block_given?
|
|
358
367
|
define
|
|
359
368
|
end
|
|
@@ -363,7 +372,7 @@ module XCJobs
|
|
|
363
372
|
end
|
|
364
373
|
|
|
365
374
|
def export_format
|
|
366
|
-
@export_format
|
|
375
|
+
@export_format
|
|
367
376
|
end
|
|
368
377
|
|
|
369
378
|
def export_provisioning_profile=(provisioning_profile)
|
|
@@ -388,6 +397,7 @@ module XCJobs
|
|
|
388
397
|
|
|
389
398
|
def options
|
|
390
399
|
[].tap do |opts|
|
|
400
|
+
opts.concat(['-exportOptionsPlist', options_plist]) if options_plist
|
|
391
401
|
opts.concat(['-archivePath', archive_path]) if archive_path
|
|
392
402
|
opts.concat(['-exportFormat', export_format]) if export_format
|
|
393
403
|
opts.concat(['-exportPath', export_path]) if export_path
|
data/spec/xcodebuild_spec.rb
CHANGED
|
@@ -334,6 +334,29 @@ describe XCJobs::Xcodebuild do
|
|
|
334
334
|
end
|
|
335
335
|
end
|
|
336
336
|
end
|
|
337
|
+
|
|
338
|
+
describe 'unsetenv_others' do
|
|
339
|
+
it 'defaults to false' do
|
|
340
|
+
task = XCJobs::Build.new do |t|
|
|
341
|
+
t.project = 'Example.xcodeproj'
|
|
342
|
+
t.target = 'Example'
|
|
343
|
+
t.configuration = 'Release'
|
|
344
|
+
end
|
|
345
|
+
|
|
346
|
+
expect(task.unsetenv_others).to eq false
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
it 'can be configured' do
|
|
350
|
+
task = XCJobs::Build.new do |t|
|
|
351
|
+
t.project = 'Example.xcodeproj'
|
|
352
|
+
t.target = 'Example'
|
|
353
|
+
t.configuration = 'Release'
|
|
354
|
+
t.unsetenv_others = true
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
expect(task.unsetenv_others).to eq true
|
|
358
|
+
end
|
|
359
|
+
end
|
|
337
360
|
end
|
|
338
361
|
|
|
339
362
|
describe XCJobs::Archive do
|
|
@@ -512,6 +535,10 @@ describe XCJobs::Xcodebuild do
|
|
|
512
535
|
expect(task.export_signing_identity).to eq 'iPhone Distribution: kishikawa katsumi'
|
|
513
536
|
end
|
|
514
537
|
|
|
538
|
+
it 'configures unsetenv_others to true by default' do
|
|
539
|
+
expect(task.unsetenv_others).to be_truthy
|
|
540
|
+
end
|
|
541
|
+
|
|
515
542
|
describe 'tasks' do
|
|
516
543
|
describe 'export' do
|
|
517
544
|
subject { Rake.application['build:export'] }
|
|
@@ -567,6 +594,81 @@ describe XCJobs::Xcodebuild do
|
|
|
567
594
|
end
|
|
568
595
|
end
|
|
569
596
|
|
|
597
|
+
describe 'export task for IPA' do
|
|
598
|
+
let!(:task) do
|
|
599
|
+
XCJobs::Export.new do |t|
|
|
600
|
+
t.archive_path = 'build/Example'
|
|
601
|
+
t.export_format = nil
|
|
602
|
+
t.export_path = 'build'
|
|
603
|
+
end
|
|
604
|
+
end
|
|
605
|
+
|
|
606
|
+
it 'configures the export_format to be nil' do
|
|
607
|
+
expect(task.export_format).to be_nil
|
|
608
|
+
end
|
|
609
|
+
|
|
610
|
+
describe 'tasks' do
|
|
611
|
+
describe 'export' do
|
|
612
|
+
subject { Rake.application['build:export'] }
|
|
613
|
+
|
|
614
|
+
it 'executes the appropriate commands' do
|
|
615
|
+
subject.invoke
|
|
616
|
+
expect(@commands).to eq ['xcodebuild -exportArchive -archivePath build/Example -exportPath build']
|
|
617
|
+
end
|
|
618
|
+
end
|
|
619
|
+
end
|
|
620
|
+
end
|
|
621
|
+
|
|
622
|
+
describe 'export task for IPA' do
|
|
623
|
+
let!(:task) do
|
|
624
|
+
XCJobs::Export.new do |t|
|
|
625
|
+
t.archive_path = 'build/Example'
|
|
626
|
+
t.export_path = 'build'
|
|
627
|
+
end
|
|
628
|
+
end
|
|
629
|
+
|
|
630
|
+
it 'has default export_format default to be IPA' do
|
|
631
|
+
expect(task.export_format).to eq 'IPA'
|
|
632
|
+
end
|
|
633
|
+
|
|
634
|
+
describe 'tasks' do
|
|
635
|
+
describe 'export' do
|
|
636
|
+
subject { Rake.application['build:export'] }
|
|
637
|
+
|
|
638
|
+
it 'executes the appropriate commands' do
|
|
639
|
+
subject.invoke
|
|
640
|
+
expect(@commands).to eq ['xcodebuild -exportArchive -archivePath build/Example -exportFormat IPA -exportPath build']
|
|
641
|
+
end
|
|
642
|
+
end
|
|
643
|
+
end
|
|
644
|
+
end
|
|
645
|
+
|
|
646
|
+
describe 'export task for IPA' do
|
|
647
|
+
let!(:task) do
|
|
648
|
+
XCJobs::Export.new do |t|
|
|
649
|
+
t.archive_path = 'build/Example'
|
|
650
|
+
t.export_format = nil
|
|
651
|
+
t.export_path = 'build'
|
|
652
|
+
t.options_plist = 'options.plist'
|
|
653
|
+
end
|
|
654
|
+
end
|
|
655
|
+
|
|
656
|
+
it 'configures the export options plist' do
|
|
657
|
+
expect(task.options_plist).to eq 'options.plist'
|
|
658
|
+
end
|
|
659
|
+
|
|
660
|
+
describe 'tasks' do
|
|
661
|
+
describe 'export' do
|
|
662
|
+
subject { Rake.application['build:export'] }
|
|
663
|
+
|
|
664
|
+
it 'executes the appropriate commands' do
|
|
665
|
+
subject.invoke
|
|
666
|
+
expect(@commands).to eq ['xcodebuild -exportArchive -exportOptionsPlist options.plist -archivePath build/Example -exportPath build']
|
|
667
|
+
end
|
|
668
|
+
end
|
|
669
|
+
end
|
|
670
|
+
end
|
|
671
|
+
|
|
570
672
|
describe 'export task for PKG' do
|
|
571
673
|
let!(:task) do
|
|
572
674
|
XCJobs::Export.new do |t|
|
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.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- kishikawa katsumi
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2016-06-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
120
120
|
version: '0'
|
|
121
121
|
requirements: []
|
|
122
122
|
rubyforge_project:
|
|
123
|
-
rubygems_version: 2.
|
|
123
|
+
rubygems_version: 2.5.1
|
|
124
124
|
signing_key:
|
|
125
125
|
specification_version: 4
|
|
126
126
|
summary: Support the automation of release process of iOS/OSX apps with CI
|