ocean_package 0.13.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ceca75b90d4c107d40b58abb14172f059a4edf39575973dd49ca17cdb71d2774
4
- data.tar.gz: 7aebc168f950e635c47bd41c69434ddded358b012a4cf5fc93ba756786a38289
3
+ metadata.gz: 65d0074f1b3760d6b4012238dcf78594b486f5c542f08715a05823a31fbe1287
4
+ data.tar.gz: 75d9b7e786ab83e4543f0605a5742c5651f79e620b1996e941d8a541d687fc03
5
5
  SHA512:
6
- metadata.gz: ff1e88a0b70f2728f6994d81a1c9d92939ab852d8081ff40da436129e7d84f3c63c639474a7c8b4c0bec113bfdb79aa5a4dddeb9e5d4131de600a73eee7da1be
7
- data.tar.gz: 66504e35c19e08d23d9bd2a34dbac17afd1566cc22b4fe57ae1542cba2d6f7a24be8acb696a3607d6a935617f924771ee4835007c07ef1ef4d028f25c25e4f9d
6
+ metadata.gz: 7c5504cac2244dac99129a5aa61c84cbdba90a5502af1b4d5ce6b804f7c8a1566de3a6f767ce38232d8371bddc36fbb5cbc8a3f531998409fcfbdfd712d50570
7
+ data.tar.gz: 2d193b4b39545aa82f16fcf9bee364e98e1dfbf7d2eb6262687dcec41875c37885d252db866cac66ef72075d71eb016e23a3c08b0925e9b4db778d08ad882dd1
@@ -20,10 +20,38 @@
20
20
  <orderEntry type="library" scope="PROVIDED" name="httparty (v0.18.1, ruby-2.6.3-p62) [gem]" level="application" />
21
21
  <orderEntry type="library" scope="PROVIDED" name="mime-types (v3.3.1, ruby-2.6.3-p62) [gem]" level="application" />
22
22
  <orderEntry type="library" scope="PROVIDED" name="mime-types-data (v3.2020.0512, ruby-2.6.3-p62) [gem]" level="application" />
23
- <orderEntry type="library" scope="PROVIDED" name="minitest (v5.14.4, ruby-2.6.3-p62) [gem]" level="application" />
23
+ <orderEntry type="library" scope="PROVIDED" name="minitest (v5.11.3, ruby-2.6.3-p62) [gem]" level="application" />
24
24
  <orderEntry type="library" scope="PROVIDED" name="multi_xml (v0.6.0, ruby-2.6.3-p62) [gem]" level="application" />
25
25
  <orderEntry type="library" scope="PROVIDED" name="multipart-post (v2.1.1, ruby-2.6.3-p62) [gem]" level="application" />
26
26
  <orderEntry type="library" scope="PROVIDED" name="rake (v10.5.0, ruby-2.6.3-p62) [gem]" level="application" />
27
27
  <orderEntry type="library" scope="PROVIDED" name="semantic_logger (v4.7.1, ruby-2.6.3-p62) [gem]" level="application" />
28
28
  </component>
29
+ <component name="RakeTasksCache">
30
+ <option name="myRootTask">
31
+ <RakeTaskImpl id="rake">
32
+ <subtasks>
33
+ <RakeTaskImpl description="Build ocean_package-0.14.0.gem into the pkg directory" fullCommand="build" id="build" />
34
+ <RakeTaskImpl description="Remove any temporary products" fullCommand="clean" id="clean" />
35
+ <RakeTaskImpl description="Remove any generated files" fullCommand="clobber" id="clobber" />
36
+ <RakeTaskImpl description="Build and install ocean_package-0.14.0.gem into system gems" fullCommand="install" id="install" />
37
+ <RakeTaskImpl id="install">
38
+ <subtasks>
39
+ <RakeTaskImpl description="Build and install ocean_package-0.14.0.gem into system gems without network access" fullCommand="install:local" id="local" />
40
+ </subtasks>
41
+ </RakeTaskImpl>
42
+ <RakeTaskImpl description="Create tag v0.14.0 and build and push ocean_package-0.14.0.gem to rubygems.org" fullCommand="release[remote]" id="release[remote]" />
43
+ <RakeTaskImpl description="Run tests" fullCommand="test" id="test" />
44
+ <RakeTaskImpl description="" fullCommand="default" id="default" />
45
+ <RakeTaskImpl description="" fullCommand="release" id="release" />
46
+ <RakeTaskImpl id="release">
47
+ <subtasks>
48
+ <RakeTaskImpl description="" fullCommand="release:guard_clean" id="guard_clean" />
49
+ <RakeTaskImpl description="" fullCommand="release:rubygem_push" id="rubygem_push" />
50
+ <RakeTaskImpl description="" fullCommand="release:source_control_push" id="source_control_push" />
51
+ </subtasks>
52
+ </RakeTaskImpl>
53
+ </subtasks>
54
+ </RakeTaskImpl>
55
+ </option>
56
+ </component>
29
57
  </module>
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ocean_package (0.12.0)
4
+ ocean_package (0.14.0)
5
5
  CFPropertyList
6
6
  dingbot
7
7
  faraday
@@ -1,6 +1,7 @@
1
1
 
2
2
  module OceanPackage
3
3
  class Command
4
+ include OceanPackage::TimeFlow::Mixin
4
5
 
5
6
  # xcodebuild 打包相关
6
7
  attr_accessor :package
@@ -25,6 +26,7 @@ module OceanPackage
25
26
  # 自定义的ipa文件路径
26
27
  attr_accessor :custom_ipa_file_path
27
28
 
29
+
28
30
  def initialize(params = [])
29
31
  argv = CLAide::ARGV.new(params)
30
32
 
@@ -124,6 +126,7 @@ module OceanPackage
124
126
 
125
127
  # 运行
126
128
  def run
129
+ time_flow.point_start_time
127
130
  # 没有自定义ipa文件,需要执行打包命令
128
131
  unless has_custom_ipa_file
129
132
  package.run
@@ -135,6 +138,8 @@ module OceanPackage
135
138
 
136
139
  # 上传 ipa 文件
137
140
  def upload
141
+ time_flow.point_upload_ipa_time
142
+
138
143
  can_fir = fir.check
139
144
  can_pgy = pgy.check
140
145
  if can_fir
@@ -213,6 +218,8 @@ module OceanPackage
213
218
 
214
219
  # 发送打包信息到钉钉
215
220
  def send_ding_talk_msg
221
+ time_flow.point_notify_group_time
222
+
216
223
  # 消息卡片,富文本
217
224
  title = make_web_hook_message_title
218
225
  content = make_web_hook_message
@@ -223,11 +230,33 @@ module OceanPackage
223
230
 
224
231
  # 打包完成
225
232
  def finished
233
+ time_flow.point_end_time
234
+ write_time_flow_data
235
+
226
236
  Log.divider
227
237
  Log.info("package finished")
228
238
  Log.divider
229
239
  end
230
240
 
241
+ def write_time_flow_data
242
+ time_flow_dir = @package.final_archive_path
243
+ time_flow_file_path = "#{time_flow_dir}timeflow.json"
244
+ params = time_flow.make_all_points
245
+ params['timeFlowPath'] = time_flow_file_path
246
+ json = JSON.dump(params)
247
+
248
+ unless File.exist?(time_flow_file_path)
249
+ FileUtils.touch(time_flow_file_path)
250
+ end
251
+ a_file = File.new(time_flow_file_path, "r+")
252
+ if a_file
253
+ a_file.syswrite(json)
254
+ Log.info("write time flow to path(success): #{time_flow_file_path}")
255
+ else
256
+ Log.error("write time flow to path(fail): #{time_flow_file_path}")
257
+ end
258
+ end
259
+
231
260
  end
232
261
 
233
262
  end
@@ -2,6 +2,7 @@
2
2
  module OceanPackage
3
3
 
4
4
  class Package
5
+ include OceanPackage::TimeFlow::Mixin
5
6
 
6
7
  # .xcworkspace 文件路径
7
8
  attr_accessor :workspace_path
@@ -186,6 +187,8 @@ module OceanPackage
186
187
 
187
188
  # clean
188
189
  def clean
190
+ time_flow.point_clean_time
191
+
189
192
  res = system(clean_cmd)
190
193
  Log.info("clean result: #{res}")
191
194
 
@@ -264,6 +267,8 @@ module OceanPackage
264
267
 
265
268
  # archive
266
269
  def archive
270
+ time_flow.point_archive_time
271
+
267
272
  res = system(archive_cmd)
268
273
 
269
274
  Log.info("archive result: #{res}")
@@ -305,6 +310,8 @@ module OceanPackage
305
310
  end
306
311
 
307
312
  def export
313
+ time_flow.point_export_time
314
+
308
315
  res = system(export_cmd)
309
316
 
310
317
  Log.info("export result: #{res}")
@@ -0,0 +1,123 @@
1
+ module OceanPackage
2
+ class TimeFlow
3
+
4
+ # 开始时间
5
+ attr_accessor :start_time
6
+ # git拉取仓库时间
7
+ attr_accessor :pull_git_time
8
+ # 安装相关依赖时间
9
+ attr_accessor :pull_dependency_time
10
+ # clean 项目时间
11
+ attr_accessor :clean_time
12
+ # archive 项目时间
13
+ attr_accessor :archive_time
14
+ # 加固 项目时间
15
+ attr_accessor :reinforce_time
16
+ # 导出ipa包时间
17
+ attr_accessor :export_time
18
+ # 上传ipa到分发平台时间
19
+ attr_accessor :upload_ipa_time
20
+ # 上传dsym符号表时间
21
+ attr_accessor :upload_dsym_time
22
+ # 群通知时间(钉钉群)
23
+ attr_accessor :notify_group_time
24
+ # 整个流程完成时间
25
+ attr_accessor :end_time
26
+
27
+ public
28
+
29
+ def self.instance
30
+ @instance ||= new
31
+ end
32
+
33
+ class << self
34
+ attr_writer :instance
35
+ end
36
+
37
+ def initialize()
38
+ @start_time = get_seconds
39
+ @pull_git_time = 0
40
+ @pull_dependency_time = 0
41
+ @clean_time = 0
42
+ @archive_time = 0
43
+ @reinforce_time = 0
44
+ @export_time = 0
45
+ @upload_ipa_time = 0
46
+ @upload_dsym_time = 0
47
+ @notify_group_time = 0
48
+ end
49
+
50
+ def get_seconds
51
+ Time.now.to_i
52
+ end
53
+
54
+ def point_pull_git_time
55
+ @pull_git_time = get_seconds
56
+ end
57
+
58
+ def point_pull_dependency_time
59
+ @pull_dependency_time = get_seconds
60
+ end
61
+
62
+ def point_clean_time
63
+ @clean_time = get_seconds
64
+ end
65
+
66
+ def point_archive_time
67
+ @archive_time = get_seconds
68
+ end
69
+
70
+ def point_reinforce_time
71
+ @reinforce_time = get_seconds
72
+ end
73
+
74
+ def point_export_time
75
+ @export_time = get_seconds
76
+ end
77
+
78
+ def point_upload_ipa_time
79
+ @upload_ipa_time = get_seconds
80
+ end
81
+
82
+ def point_upload_dsym_time
83
+ @upload_dsym_time = get_seconds
84
+ end
85
+
86
+ def point_notify_group_time
87
+ @notify_group_time = get_seconds
88
+ end
89
+
90
+ def point_start_time
91
+ @start_time = get_seconds
92
+ end
93
+
94
+ def point_end_time
95
+ @end_time = get_seconds
96
+ end
97
+
98
+ def make_all_points
99
+ params = {
100
+ "startTime" => @start_time,
101
+ "pullGitTime" => @pull_git_time,
102
+ "pullDependencyTime" => @pull_dependency_time,
103
+ "cleanTime" => @clean_time,
104
+ "archiveTime" => @archive_time,
105
+ "reinforceTime" => @reinforce_time,
106
+ "exportTime" => @export_time,
107
+ "uploadIpaTime" => @upload_ipa_time,
108
+ "uploadDsymTime" => @upload_dsym_time,
109
+ "notifyGroupTime" => @notify_group_time,
110
+ "endTime" => @end_time
111
+ }
112
+ json = JSON.dump(params)
113
+ json
114
+ end
115
+
116
+ module Mixin
117
+ def time_flow
118
+ TimeFlow.instance
119
+ end
120
+ end
121
+
122
+ end
123
+ end
@@ -1,3 +1,3 @@
1
1
  module OceanPackage
2
- VERSION = "0.13.0"
2
+ VERSION = "0.14.0"
3
3
  end
data/lib/ocean_package.rb CHANGED
@@ -10,6 +10,8 @@ require 'find'
10
10
  # 注意:这里使用 require_relative 来引用文件
11
11
  require_relative 'ocean_package/version'
12
12
  require_relative 'ocean_package/config'
13
+ # 放在前面
14
+ require_relative 'ocean_package/time_flow'
13
15
  require_relative 'ocean_package/command'
14
16
  require_relative 'ocean_package/constants'
15
17
  require_relative 'ocean_package/fir'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ocean_package
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ocean
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-25 00:00:00.000000000 Z
11
+ date: 2022-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dingbot
@@ -160,13 +160,14 @@ files:
160
160
  - lib/ocean_package/oss.rb
161
161
  - lib/ocean_package/package.rb
162
162
  - lib/ocean_package/pgy.rb
163
+ - lib/ocean_package/time_flow.rb
163
164
  - lib/ocean_package/version.rb
164
165
  - ocean_package.gemspec
165
166
  homepage: https://github.com/oceanfive/ocean_package
166
167
  licenses:
167
168
  - MIT
168
169
  metadata: {}
169
- post_install_message:
170
+ post_install_message:
170
171
  rdoc_options: []
171
172
  require_paths:
172
173
  - lib
@@ -181,8 +182,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
182
  - !ruby/object:Gem::Version
182
183
  version: '0'
183
184
  requirements: []
184
- rubygems_version: 3.0.3
185
- signing_key:
185
+ rubygems_version: 3.1.4
186
+ signing_key:
186
187
  specification_version: 4
187
188
  summary: ocean package
188
189
  test_files: []