luna-binary-uploader 0.1.18 → 0.1.22
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/bin/lbu +35 -13
- data/lib/luna/binary/benchmark.rb +117 -0
- data/lib/luna/binary/build.rb +1 -3
- data/lib/luna/binary/common/common.rb +45 -4
- data/lib/luna/binary/delete.rb +1 -1
- data/lib/luna/binary/init.rb +1 -1
- data/lib/luna/binary/uploader/version.rb +1 -1
- data/lib/luna/binary/uploader.rb +3 -3
- data/lib/luna-binary-uploader.rb +10 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ab024fbb7a3b9e093e0a37de5bb3c3581197ce5c67943a0fee70b981dccca01
|
4
|
+
data.tar.gz: 1f420170477e16c1a7b56da71320aae01c6275f3d82326222d87e26ac54e78d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47182ea6cfd515f8e4ca0f4811bd6a42616aed2aba61af174c065738ec24702f0577a3349998990cd2e58f12ee582dcb3e6818b972d3a2da5c5dd742a285e30a
|
7
|
+
data.tar.gz: 68110efcaae4606c56a2528dc0554c69796872880af060b7ca16297d95f04c8a191f2b6dc0dce7116537b4568b8ae1c2f8b513698740dd1ff5004ce66e8888b9
|
data/Gemfile.lock
CHANGED
data/bin/lbu
CHANGED
@@ -1,14 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require "bundler/setup"
|
4
|
-
require "luna
|
5
|
-
require "luna/binary/delete"
|
6
|
-
require "luna/binary/analysis"
|
7
|
-
require "luna/binary/refresh"
|
8
|
-
require "luna/binary/build"
|
9
|
-
require "luna/binary/update"
|
10
|
-
require "luna/binary/install"
|
11
|
-
require "luna/binary/init"
|
4
|
+
require "luna-binary-uploader"
|
12
5
|
require 'gli'
|
13
6
|
|
14
7
|
# You can add fixtures and/or initialization code here to make experimenting
|
@@ -21,7 +14,7 @@ require 'gli'
|
|
21
14
|
class App
|
22
15
|
extend GLI::App
|
23
16
|
|
24
|
-
program_desc 'luna
|
17
|
+
program_desc 'luna-binary-uploader 自定义二进制上传'
|
25
18
|
|
26
19
|
version Luna::Binary::Uploader::VERSION
|
27
20
|
|
@@ -73,9 +66,10 @@ class App
|
|
73
66
|
arg_name '只接参数n, 表示不用二进制 '
|
74
67
|
command :install do |c|
|
75
68
|
c.action do |global_options,options,args|
|
76
|
-
is_open = "false"
|
77
69
|
if args[0] && args[0] != "n"
|
78
70
|
raise "只接参数n, 表示不用二进制"
|
71
|
+
elsif args[0] && args[0] == "n"
|
72
|
+
is_open = "false"
|
79
73
|
else
|
80
74
|
is_open = "true"
|
81
75
|
end
|
@@ -84,7 +78,7 @@ class App
|
|
84
78
|
end
|
85
79
|
|
86
80
|
desc '单个上传二进制文件'
|
87
|
-
arg_name '
|
81
|
+
arg_name 'a.模块名 git地址 git节点 xcode编译的缓存地址 \n b.模块名 版本号 xcode编译的缓存地址 \n c.模块名 本地podspec地址 xcode编译的缓存地址'
|
88
82
|
command :single do |c|
|
89
83
|
c.action do |global_options,options,args|
|
90
84
|
if args[3] #模式1
|
@@ -123,10 +117,14 @@ class App
|
|
123
117
|
end
|
124
118
|
|
125
119
|
desc '单个删除repo 里的podspec & 服务二进制文件'
|
126
|
-
arg_name '
|
120
|
+
arg_name '1.模块名 2.版本号'
|
127
121
|
command :del do |c|
|
128
122
|
c.action do |global_options,options,args|
|
129
|
-
|
123
|
+
if args[0] && args[1]
|
124
|
+
Luna::Binary::Delete.new(args[0],args[1]).delete
|
125
|
+
else
|
126
|
+
raise "缺少参数:1.模块名 2.版本号"
|
127
|
+
end
|
130
128
|
end
|
131
129
|
end
|
132
130
|
|
@@ -177,10 +175,14 @@ class App
|
|
177
175
|
arg_name '1.xcworkspace 名称 eg:MyWorkSpace.xcworkspace 2.scheme eg: MyProject'
|
178
176
|
command :build do |c|
|
179
177
|
c.action do |global_options,options,args|
|
178
|
+
if args[0] && args[1]
|
180
179
|
obj = Luna::Binary::Build.new()
|
181
180
|
obj.workspace=args[0]
|
182
181
|
obj.scheme=args[1]
|
183
182
|
obj.run
|
183
|
+
else
|
184
|
+
raise "缺少参数:1.xcworkspace 名称 eg:MyWorkSpace.xcworkspace 2.scheme eg: MyProject"
|
185
|
+
end
|
184
186
|
end
|
185
187
|
end
|
186
188
|
|
@@ -188,8 +190,28 @@ class App
|
|
188
190
|
arg_name '1.armPath 2.x86path'
|
189
191
|
command :merge do |c|
|
190
192
|
c.action do |global_options,options,args|
|
193
|
+
if args[0] && args[1]
|
191
194
|
obj = Luna::Binary::Build.new()
|
192
195
|
obj.mergeFrameWorks(args[0], args[1])
|
196
|
+
else
|
197
|
+
raise "缺少参数:1.armPath 2.x86path"
|
198
|
+
end
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
desc 'benchmark 二进制和非二进制'
|
203
|
+
arg_name '1.跑工程几次 2.workspace 3.scheme 4.normal正常模式下 binary二进制模式下,不传的话都跑'
|
204
|
+
command :benchmark do |c|
|
205
|
+
c.action do |global_options,options,args|
|
206
|
+
obj = Luna::Binary::BenchMark.new(Integer(args[0]), args[1], args[2])
|
207
|
+
if args[3] == "normal"
|
208
|
+
obj.run_no_binary
|
209
|
+
elsif args[3] == "binary"
|
210
|
+
obj.run_binary
|
211
|
+
else
|
212
|
+
obj.run
|
213
|
+
end
|
214
|
+
obj.print
|
193
215
|
end
|
194
216
|
end
|
195
217
|
|
@@ -0,0 +1,117 @@
|
|
1
|
+
require 'date'
|
2
|
+
require "luna/binary/uploader/version"
|
3
|
+
require "cocoapods"
|
4
|
+
require 'cocoapods-imy-bin/native/sources_manager'
|
5
|
+
require 'cocoapods-imy-bin/config/config'
|
6
|
+
require 'cocoapods-imy-bin'
|
7
|
+
require 'json'
|
8
|
+
require 'luna/binary/common/common'
|
9
|
+
|
10
|
+
|
11
|
+
module Luna
|
12
|
+
module Binary
|
13
|
+
|
14
|
+
class DogTimer
|
15
|
+
|
16
|
+
attr_accessor :start_time
|
17
|
+
attr_accessor :end_time
|
18
|
+
attr_accessor :delta_time
|
19
|
+
def initialize()
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def start
|
24
|
+
@start_time = Time.now()
|
25
|
+
puts start_time
|
26
|
+
end
|
27
|
+
|
28
|
+
def end
|
29
|
+
@end_time = Time.now()
|
30
|
+
puts end_time
|
31
|
+
end
|
32
|
+
|
33
|
+
def delta
|
34
|
+
@delta_time = @end_time - @start_time
|
35
|
+
end
|
36
|
+
|
37
|
+
def print
|
38
|
+
puts "start time: #{start_time.inspect} end time: #{end_time.inspect} delta time: #{delta}s ".yellow
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class BenchMark
|
43
|
+
attr_reader :times
|
44
|
+
attr_reader :workspace
|
45
|
+
attr_reader :scheme
|
46
|
+
attr_reader :binary_time_arr
|
47
|
+
attr_reader :normal_time_arr
|
48
|
+
|
49
|
+
def initialize(times, workspace, scheme)
|
50
|
+
@times = times
|
51
|
+
@workspace = workspace
|
52
|
+
@scheme = scheme
|
53
|
+
@binary_time_arr = []
|
54
|
+
@normal_time_arr = []
|
55
|
+
end
|
56
|
+
|
57
|
+
def run
|
58
|
+
run_binary
|
59
|
+
run_no_binary
|
60
|
+
end
|
61
|
+
|
62
|
+
def run_binary
|
63
|
+
i = 0
|
64
|
+
Common.instance.command("lbu install")
|
65
|
+
while i < times
|
66
|
+
Common.instance.command("xcodebuild clean -quiet -workspace #{workspace} -scheme #{scheme} -configuration Debug")
|
67
|
+
t = DogTimer.new()
|
68
|
+
t.start
|
69
|
+
Common.instance.command("xcodebuild -workspace #{workspace} -scheme #{scheme} -configuration Debug")
|
70
|
+
t.end
|
71
|
+
binary_time_arr << t
|
72
|
+
i = i + 1
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def run_no_binary
|
77
|
+
Common.instance.command("lbu install n")
|
78
|
+
i = 0
|
79
|
+
while i < times
|
80
|
+
Common.instance.command("xcodebuild clean -quiet -workspace #{workspace} -scheme #{scheme} -configuration Debug")
|
81
|
+
t = DogTimer.new()
|
82
|
+
t.start
|
83
|
+
Common.instance.command("xcodebuild -workspace #{workspace} -scheme #{scheme} -configuration Debug")
|
84
|
+
t.end
|
85
|
+
normal_time_arr << t
|
86
|
+
i = i + 1
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
def print
|
92
|
+
i = 0
|
93
|
+
sum_time = 0
|
94
|
+
normal_time_arr.each { |item|
|
95
|
+
item.print
|
96
|
+
sum_time += item.delta
|
97
|
+
p sum_time
|
98
|
+
i += 1
|
99
|
+
}
|
100
|
+
|
101
|
+
puts "normal average time: #{sum_time/i}"
|
102
|
+
i = 0
|
103
|
+
sum_time = 0
|
104
|
+
binary_time_arr.each { |item|
|
105
|
+
item.print
|
106
|
+
sum_time += item.delta
|
107
|
+
p sum_time
|
108
|
+
i += 1
|
109
|
+
}
|
110
|
+
puts "binary average time: #{sum_time/i}"
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
data/lib/luna/binary/build.rb
CHANGED
@@ -26,9 +26,7 @@ module Luna
|
|
26
26
|
def createFrameworks
|
27
27
|
isNext = true
|
28
28
|
puts "请将二进制开关关闭,确保每个模块都是源码运行,因为二进制的因素有可能source缓存还是会引入二进制".yellow
|
29
|
-
|
30
|
-
|
31
|
-
isNext = command("pod install")
|
29
|
+
Install.new(false)
|
32
30
|
Common.instance.deleteDirectory(binary_path_arm)
|
33
31
|
tempLunaUploaderPath = Common.instance.tempLunaUploaderPath
|
34
32
|
isNext = command("xcodebuild -workspace #{workspace} -scheme #{scheme} -configuration Debug -derivedDataPath '#{tempLunaUploaderPath}/build/arm/temp'") if isNext == true
|
@@ -14,7 +14,12 @@ module Luna
|
|
14
14
|
attr_accessor :version, :state
|
15
15
|
attr_accessor :podFilePath
|
16
16
|
attr_accessor :lockfile
|
17
|
-
|
17
|
+
attr_reader :bin_dev
|
18
|
+
attr_reader :binary_repo_url
|
19
|
+
attr_reader :binary_upload_url
|
20
|
+
attr_reader :binary_download_url
|
21
|
+
attr_reader :download_file_type
|
22
|
+
|
18
23
|
def initialize()
|
19
24
|
end
|
20
25
|
|
@@ -22,7 +27,7 @@ module Luna
|
|
22
27
|
sources = Pod::Config.instance.sources_manager.all
|
23
28
|
repoPath = nil
|
24
29
|
sources.each { |item|
|
25
|
-
if item.url ==
|
30
|
+
if item.url == Common.instance.binary_repo_url
|
26
31
|
repoPath = item.repo
|
27
32
|
end
|
28
33
|
}
|
@@ -95,7 +100,7 @@ module Luna
|
|
95
100
|
end
|
96
101
|
|
97
102
|
def request_result_hash
|
98
|
-
command = "curl #{
|
103
|
+
command = "curl #{Common.instance.binary_upload_url}"
|
99
104
|
p command
|
100
105
|
result = %x(#{command})
|
101
106
|
request_result_hash = JSON.parse(result)
|
@@ -105,7 +110,7 @@ module Luna
|
|
105
110
|
|
106
111
|
def createNeedFrameworkMapper
|
107
112
|
spec_repo_binary = {}
|
108
|
-
puts "二进制repo地址 : #{
|
113
|
+
puts "二进制repo地址 : #{Common.instance.binary_repo_url}".yellow
|
109
114
|
use_framework_list.each { |item|
|
110
115
|
name = item.split('/').first
|
111
116
|
if spec_repo_binary[name] == nil
|
@@ -214,6 +219,42 @@ module Luna
|
|
214
219
|
return lockfile.dependencies.map { |item| [item.name.split("/").first, item]}.to_h
|
215
220
|
end
|
216
221
|
|
222
|
+
def bin_dev
|
223
|
+
if @bin_dev == nil
|
224
|
+
@bin_dev = YAML.load_file("#{Pod::Config.instance.home_dir}/bin_dev.yml")
|
225
|
+
end
|
226
|
+
return @bin_dev
|
227
|
+
end
|
228
|
+
|
229
|
+
def binary_repo_url
|
230
|
+
if @binary_repo_url == nil
|
231
|
+
@binary_repo_url = bin_dev["binary_repo_url"]
|
232
|
+
end
|
233
|
+
return @binary_repo_url
|
234
|
+
end
|
235
|
+
|
236
|
+
def binary_upload_url
|
237
|
+
if @binary_upload_url == nil
|
238
|
+
cut_string = "/%s/%s/zip"
|
239
|
+
@binary_upload_url = binary_download_url[0,binary_download_url.length - cut_string.length]
|
240
|
+
end
|
241
|
+
return @binary_upload_url
|
242
|
+
end
|
243
|
+
|
244
|
+
def binary_download_url
|
245
|
+
if @binary_download_url == nil
|
246
|
+
@binary_download_url = bin_dev["binary_download_url"]
|
247
|
+
end
|
248
|
+
return @binary_download_url
|
249
|
+
end
|
250
|
+
|
251
|
+
def download_file_type
|
252
|
+
if @download_file_type == nil
|
253
|
+
@download_file_type = bin_dev["download_file_type"]
|
254
|
+
end
|
255
|
+
return @download_file_type
|
256
|
+
end
|
257
|
+
|
217
258
|
end
|
218
259
|
end
|
219
260
|
end
|
data/lib/luna/binary/delete.rb
CHANGED
@@ -41,7 +41,7 @@ module Luna
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def deleteBinaryFramework
|
44
|
-
command = "curl -X 'DELETE' #{
|
44
|
+
command = "curl -X 'DELETE' #{Common.instance.binary_upload_url}/#{name}/#{version}"
|
45
45
|
p command
|
46
46
|
system command
|
47
47
|
end
|
data/lib/luna/binary/init.rb
CHANGED
@@ -17,7 +17,7 @@ module Luna
|
|
17
17
|
|
18
18
|
def run
|
19
19
|
Common.instance.command("curl -o #{Pod::Config.instance.home_dir}/bin_dev.yml #{url}")
|
20
|
-
Common.instance.command("pod repo add z-ios-framework-spec-repo #{
|
20
|
+
Common.instance.command("pod repo add z-ios-framework-spec-repo #{Common.instance.binary_repo_url}")
|
21
21
|
end
|
22
22
|
|
23
23
|
end
|
data/lib/luna/binary/uploader.rb
CHANGED
@@ -322,7 +322,7 @@ module Luna
|
|
322
322
|
end
|
323
323
|
|
324
324
|
def binary_source
|
325
|
-
{ http: format(
|
325
|
+
{ http: format(Common.instance.binary_download_url, specification.root.name, specification.version), type: Common.instance.download_file_type }
|
326
326
|
end
|
327
327
|
|
328
328
|
def source_files(suffix)
|
@@ -385,7 +385,7 @@ module Luna
|
|
385
385
|
end
|
386
386
|
|
387
387
|
def isHasFrameworkInService
|
388
|
-
command = "curl #{format(
|
388
|
+
command = "curl #{format(Common.instance.binary_download_url, specification.root.name, specification.version).sub("#{Common.instance.download_file_type}","")}"
|
389
389
|
p command
|
390
390
|
result = %x(#{command})
|
391
391
|
resultHash = JSON.parse(result)
|
@@ -405,7 +405,7 @@ module Luna
|
|
405
405
|
zipCommand = "cd #{rootName};zip -r #{specification.root.name}.zip #{specification.root.name}"
|
406
406
|
p zipCommand
|
407
407
|
system zipCommand
|
408
|
-
command = "cd #{rootName};curl #{
|
408
|
+
command = "cd #{rootName};curl #{Common.instance.binary_upload_url} -F \"name=#{specification.root.name}\" -F \"version=#{specification.version}\" -F \"annotate=#{specification.root.name}_#{specification.version}_log\" -F \"file=@#{specification.root.name}.zip\""
|
409
409
|
p command
|
410
410
|
system command
|
411
411
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require "luna/binary/uploader"
|
2
|
+
require "luna/binary/delete"
|
3
|
+
require "luna/binary/analysis"
|
4
|
+
require "luna/binary/refresh"
|
5
|
+
require "luna/binary/build"
|
6
|
+
require "luna/binary/update"
|
7
|
+
require "luna/binary/install"
|
8
|
+
require "luna/binary/init"
|
9
|
+
require "luna/binary/common/common"
|
10
|
+
require "luna/binary/benchmark"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: luna-binary-uploader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 车德超
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -139,7 +139,9 @@ files:
|
|
139
139
|
- Rakefile
|
140
140
|
- bin/lbu
|
141
141
|
- bin/setup
|
142
|
+
- lib/luna-binary-uploader.rb
|
142
143
|
- lib/luna/binary/analysis.rb
|
144
|
+
- lib/luna/binary/benchmark.rb
|
143
145
|
- lib/luna/binary/build.rb
|
144
146
|
- lib/luna/binary/common/common.rb
|
145
147
|
- lib/luna/binary/delete.rb
|