akcache 1.1.1 → 2.0.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/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
|