akcache 1.1.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/kcache +2 -4
- data/lib/kcache/version.rb +1 -1
- data/lib/kcache.rb +54 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f1e7c5b3e86764ec008d18297ddd6046bef0bba071131cb071f547216f98643
|
4
|
+
data.tar.gz: e40db2fb5988f4d10979fee186b9c2edaccbefb01ba15689727ce6940bdd86a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55e5fde66337bd885753e702737b5e063b4af05ce2825bf4071ff1dbbde1c1476a0195db9a9b686bac07224757d33b0c71b459cd6e25aec00fc53c2f43cfa1aa
|
7
|
+
data.tar.gz: dd9221c730af1b32c8525479bc36b3417949f01fa3c923f343f92fc738d8e2bcaeb9b696ff9109f24bbd76552bcfff38b0b4c98b0041ba8dc546cd5487d0ebd4
|
data/bin/kcache
CHANGED
@@ -5,20 +5,18 @@ require 'kcache'
|
|
5
5
|
manager = CacheManager.new
|
6
6
|
|
7
7
|
if ARGV[0] == "xcodebuild" or ARGV[0] == "fastlane"
|
8
|
-
manager.project_task_begin
|
8
|
+
manager.project_task_begin(ARGV)
|
9
9
|
raise unless system(*ARGV)
|
10
10
|
manager.project_task_end
|
11
11
|
|
12
12
|
elsif ARGV[0] == "inject"
|
13
|
-
|
14
13
|
manager.set_prama_to_yaml
|
15
14
|
|
16
15
|
elsif ARGV[0] == "copy"
|
17
|
-
|
18
16
|
manager.copy_cache
|
19
17
|
|
20
18
|
elsif ARGV[0] == "begin"
|
21
|
-
manager.project_task_begin
|
19
|
+
manager.project_task_begin(ARGV)
|
22
20
|
|
23
21
|
elsif ARGV[0] == "end"
|
24
22
|
manager.project_task_end
|
data/lib/kcache/version.rb
CHANGED
data/lib/kcache.rb
CHANGED
@@ -9,7 +9,6 @@ require "find"
|
|
9
9
|
require 'set'
|
10
10
|
|
11
11
|
#配置
|
12
|
-
Target_Build_Configuration = "Release"
|
13
12
|
|
14
13
|
TARGET_CACHE_CONFIG = "target_cache_config.yml"
|
15
14
|
|
@@ -36,6 +35,8 @@ OBJROOT = "OBJROOT"
|
|
36
35
|
|
37
36
|
|
38
37
|
#变量
|
38
|
+
$target_build_configuration = "Release"
|
39
|
+
$project_build_branch = "master"
|
39
40
|
$podfile_spec_checksums = nil
|
40
41
|
$file_md5_hash = {}
|
41
42
|
$exclude_target = []
|
@@ -43,9 +44,21 @@ $exclude_target = []
|
|
43
44
|
class CacheManager
|
44
45
|
|
45
46
|
def get_cache_root
|
46
|
-
return Dir.home + "/ysCache"
|
47
|
+
return Dir.home + "/ysCache" +"/#{$project_build_branch}"
|
48
|
+
end
|
49
|
+
|
50
|
+
def get_default_cache_root
|
51
|
+
return Dir.home + "/ysCache/master"
|
47
52
|
end
|
48
53
|
|
54
|
+
def is_private_target(target)
|
55
|
+
if target.name.start_with? "AK" or target.name.start_with? "EUR" or target.name.start_with? "A4K"
|
56
|
+
return true
|
57
|
+
else
|
58
|
+
return false
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
49
62
|
def get_content_without_pwd(content)
|
50
63
|
content = content.gsub("#{Dir.pwd}/", "").gsub(/#{Dir.pwd}(\W|$)/, '\1')
|
51
64
|
return content
|
@@ -188,7 +201,7 @@ class CacheManager
|
|
188
201
|
$podfile_spec_checksums = podfile_lock["SPEC CHECKSUMS"]
|
189
202
|
end
|
190
203
|
|
191
|
-
project_configuration = project.build_configurations.detect { | config | config.name ==
|
204
|
+
project_configuration = project.build_configurations.detect { | config | config.name == $target_build_configuration}
|
192
205
|
project_configuration_content = project_configuration.pretty_print.to_yaml
|
193
206
|
|
194
207
|
project_xcconfig = ""
|
@@ -199,7 +212,7 @@ class CacheManager
|
|
199
212
|
end
|
200
213
|
end
|
201
214
|
|
202
|
-
target_configuration = target.build_configurations.detect { | config | config.name ==
|
215
|
+
target_configuration = target.build_configurations.detect { | config | config.name == $target_build_configuration}
|
203
216
|
target_configuration_content = target_configuration.pretty_print.to_yaml
|
204
217
|
|
205
218
|
target_xcconfig = ""
|
@@ -266,7 +279,10 @@ class CacheManager
|
|
266
279
|
source_md5_list.push path + " : " + get_file_md5(path)
|
267
280
|
end
|
268
281
|
end
|
282
|
+
else
|
283
|
+
source_md5_list.push "Target configuration: #{$target_build_configuration}"
|
269
284
|
end
|
285
|
+
|
270
286
|
source_md5_content = source_md5_list.join("\n")
|
271
287
|
return source_md5_content
|
272
288
|
|
@@ -279,7 +295,11 @@ class CacheManager
|
|
279
295
|
|
280
296
|
dependency_start_time = Time.now
|
281
297
|
|
282
|
-
|
298
|
+
if is_private_target(target)
|
299
|
+
target_cache_dirs = Dir.glob(get_cache_root + "/" + target.name + "-" + target_md5 + "-*")
|
300
|
+
else
|
301
|
+
target_cache_dirs = Dir.glob(get_default_cache_root + "/" + target.name + "-" + target_md5 + "-*")
|
302
|
+
end
|
283
303
|
|
284
304
|
hit_results = []
|
285
305
|
|
@@ -434,14 +454,25 @@ class CacheManager
|
|
434
454
|
return false
|
435
455
|
end
|
436
456
|
|
437
|
-
|
457
|
+
|
458
|
+
if is_private_target(target)
|
459
|
+
already_target_cache_dirs = Dir.glob(get_cache_root + "/" + target.name + "-" + target_md5 + "-*")
|
460
|
+
else
|
461
|
+
already_target_cache_dirs = Dir.glob(get_default_cache_root + "/" + target.name + "-" + target_md5 + "-*")
|
462
|
+
end
|
463
|
+
|
438
464
|
already_target_cache_dirs.each do |path|
|
439
465
|
if File.exist? path
|
440
466
|
raise unless system "rm -rf \"#{path}\""
|
441
467
|
end
|
442
468
|
end
|
443
469
|
|
444
|
-
|
470
|
+
if is_private_target(target)
|
471
|
+
target_cache_dir = get_cache_root + "/" + target.name + "-" + target_md5 + "-" + (Time.now.to_f * 1000).to_i.to_s
|
472
|
+
else
|
473
|
+
target_cache_dir = get_default_cache_root + "/" + target.name + "-" + target_md5 + "-" + (Time.now.to_f * 1000).to_i.to_s
|
474
|
+
end
|
475
|
+
|
445
476
|
if File.exist? target_cache_dir
|
446
477
|
puts "<INFO> #{target_cache_dir} should not exist"
|
447
478
|
raise unless system "rm -rf \"#{target_cache_dir}\""
|
@@ -514,7 +545,19 @@ class CacheManager
|
|
514
545
|
end
|
515
546
|
|
516
547
|
|
517
|
-
def project_task_begin
|
548
|
+
def project_task_begin(argv)
|
549
|
+
|
550
|
+
argv.each do |prama|
|
551
|
+
if prama.include? "configuration"
|
552
|
+
if prama.include? "Debug"
|
553
|
+
$target_build_configuration = "Debug"
|
554
|
+
elsif prama.include? "Release"
|
555
|
+
$target_build_configuration = "Release"
|
556
|
+
end
|
557
|
+
elsif prama.include? "branch:"
|
558
|
+
$project_build_branch = prama.dup.gsub!("branch:", "")
|
559
|
+
end
|
560
|
+
end
|
518
561
|
|
519
562
|
projects = get_projects
|
520
563
|
total_count = 0
|
@@ -539,6 +582,9 @@ class CacheManager
|
|
539
582
|
|
540
583
|
projects.each do |project|
|
541
584
|
project.native_targets.each do |target|
|
585
|
+
target.build_phases.delete_if { |phase|
|
586
|
+
phase.class == Xcodeproj::Project::Object::PBXShellScriptBuildPhase and phase.name.include? "ys_"
|
587
|
+
}
|
542
588
|
if can_cache_target(target)
|
543
589
|
total_count = total_count + 1
|
544
590
|
source_files = get_target_source_files(target)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: akcache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yusheng
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xcodeproj
|