ocean_package 0.13.0 → 0.14.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 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: []