pindo 5.4.1 → 5.5.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/lib/pindo/client/aws3sclient.rb +2 -2
- data/lib/pindo/client/httpclient.rb +1 -2
- data/lib/pindo/command/android/autobuild.rb +40 -18
- data/lib/pindo/command/android/build.rb +37 -16
- data/lib/pindo/command/android/debug.rb +34 -20
- data/lib/pindo/command/appstore/iap.rb +15 -1
- data/lib/pindo/command/appstore/itcapp.rb +15 -1
- data/lib/pindo/command/appstore/metadata.rb +15 -1
- data/lib/pindo/command/appstore/screenshots.rb +15 -1
- data/lib/pindo/command/appstore/upload.rb +15 -1
- data/lib/pindo/command/deploy/build.rb +35 -20
- data/lib/pindo/command/deploy/bundleid.rb +15 -1
- data/lib/pindo/command/deploy/cert.rb +19 -2
- data/lib/pindo/command/deploy/check.rb +15 -1
- data/lib/pindo/command/deploy/configproj.rb +15 -1
- data/lib/pindo/command/deploy/confusecode.rb +15 -1
- data/lib/pindo/command/deploy/confuseproj.rb +11 -1
- data/lib/pindo/command/deploy/fabric.rb +10 -1
- data/lib/pindo/command/deploy/getitcinfo.rb +11 -1
- data/lib/pindo/command/deploy/iap.rb +12 -1
- data/lib/pindo/command/deploy/initconfig.rb +11 -1
- data/lib/pindo/command/deploy/itcinfo.rb +12 -1
- data/lib/pindo/command/deploy/pullconfig.rb +11 -1
- data/lib/pindo/command/deploy/pushconfig.rb +11 -1
- data/lib/pindo/command/deploy/quswark.rb +12 -1
- data/lib/pindo/command/deploy/quswauth.rb +10 -1
- data/lib/pindo/command/deploy/reportbug.rb +11 -1
- data/lib/pindo/command/deploy/resign.rb +12 -1
- data/lib/pindo/command/deploy/updateconfig.rb +11 -1
- data/lib/pindo/command/deploy/uploadipa.rb +11 -1
- data/lib/pindo/command/env/dreamstudio.rb +13 -1
- data/lib/pindo/command/env/quarkenv.rb +13 -1
- data/lib/pindo/command/env/swarkenv.rb +13 -1
- data/lib/pindo/command/env/workhard.rb +13 -1
- data/lib/pindo/command/gplay/iap.rb +21 -5
- data/lib/pindo/command/gplay/itcapp.rb +19 -5
- data/lib/pindo/command/gplay/metadata.rb +23 -5
- data/lib/pindo/command/gplay/screenshots.rb +23 -5
- data/lib/pindo/command/gplay/upload.rb +21 -5
- data/lib/pindo/command/gplay.rb +8 -8
- data/lib/pindo/command/ios/adhoc.rb +18 -3
- data/lib/pindo/command/ios/autobuild.rb +22 -7
- data/lib/pindo/command/ios/autoresign.rb +18 -3
- data/lib/pindo/command/ios/build.rb +18 -4
- data/lib/pindo/command/ipa/autoresign.rb +35 -4
- data/lib/pindo/command/ipa/import.rb +19 -1
- data/lib/pindo/command/ipa/output.rb +39 -4
- data/lib/pindo/command/{pgyer → jps}/apptest.rb +35 -24
- data/lib/pindo/command/jps/bind.rb +191 -0
- data/lib/pindo/command/{pgyer → jps}/comment.rb +19 -19
- data/lib/pindo/command/{pgyer → jps}/download.rb +20 -20
- data/lib/pindo/command/{pgyer → jps}/login.rb +9 -9
- data/lib/pindo/command/{pgyer → jps}/resign.rb +40 -25
- data/lib/pindo/command/{pgyer → jps}/upload.rb +60 -43
- data/lib/pindo/command/jps.rb +18 -0
- data/lib/pindo/command/lib/forcepush.rb +15 -1
- data/lib/pindo/command/lib/push.rb +15 -1
- data/lib/pindo/command/lib/update.rb +15 -1
- data/lib/pindo/command/repo/clone.rb +11 -1
- data/lib/pindo/command/repo/create.rb +13 -1
- data/lib/pindo/command/repo/login.rb +14 -3
- data/lib/pindo/command/repo/search.rb +14 -2
- data/lib/pindo/command/unity/apk.rb +14 -28
- data/lib/pindo/command/unity/autobuild.rb +13 -13
- data/lib/pindo/command/unity/ipa.rb +15 -29
- data/lib/pindo/command/unity/web.rb +15 -15
- data/lib/pindo/command/utils/boss.rb +19 -2
- data/lib/pindo/command/utils/clearcert.rb +18 -2
- data/lib/pindo/command/utils/device.rb +19 -2
- data/lib/pindo/command/utils/icon.rb +20 -2
- data/lib/pindo/command/utils/renewcert.rb +28 -3
- data/lib/pindo/command/utils/renewproj.rb +25 -2
- data/lib/pindo/command/utils/tgate.rb +28 -3
- data/lib/pindo/command/utils/xcassets.rb +20 -2
- data/lib/pindo/command/web/autobuild.rb +18 -3
- data/lib/pindo/command.rb +1 -1
- data/lib/pindo/module/pgyer/pgyerhelper.rb +185 -85
- data/lib/pindo/version.rb +1 -1
- metadata +30 -12
- data/lib/pindo/client/pgyer_feishu_oauth_cli.rb +0 -669
- data/lib/pindo/client/pgyerclient.rb +0 -466
- data/lib/pindo/client/pgyeruploadclient.rb +0 -517
- data/lib/pindo/command/pgyer.rb +0 -18
@@ -130,11 +130,25 @@ module Pindo
|
|
130
130
|
description = nil
|
131
131
|
result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:description)
|
132
132
|
if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
|
133
|
-
|
134
|
-
|
135
|
-
|
133
|
+
PgyerHelper.share_instace.print_app_version_info(
|
134
|
+
app_info_obj: app_info_obj,
|
135
|
+
app_version_info_obj: result_data["data"]
|
136
|
+
)
|
136
137
|
if @args_send_flag
|
137
|
-
|
138
|
+
# 始终发送给自己
|
139
|
+
PgyerHelper.share_instace.send_apptest_msg(
|
140
|
+
app_info_obj: app_info_obj,
|
141
|
+
app_version_info_obj: result_data["data"],
|
142
|
+
receiveType: "self"
|
143
|
+
)
|
144
|
+
|
145
|
+
# 额外发送到测试群
|
146
|
+
PgyerHelper.share_instace.send_apptest_msg(
|
147
|
+
app_info_obj: app_info_obj,
|
148
|
+
app_version_info_obj: result_data["data"],
|
149
|
+
chatEnv: "DevTest",
|
150
|
+
receiveType: "chat"
|
151
|
+
)
|
138
152
|
end
|
139
153
|
end
|
140
154
|
end
|
@@ -14,7 +14,23 @@ module Pindo
|
|
14
14
|
self.summary = '发布阶段ipa包重签名及上传'
|
15
15
|
|
16
16
|
self.description = <<-DESC
|
17
|
-
|
17
|
+
发布阶段ipa包重签名及上传。
|
18
|
+
|
19
|
+
支持功能:
|
20
|
+
|
21
|
+
* IPA包重签名
|
22
|
+
|
23
|
+
* 上传到测试平台
|
24
|
+
|
25
|
+
* 发送测试通知
|
26
|
+
|
27
|
+
使用示例:
|
28
|
+
|
29
|
+
$ pindo ipa autoresign demo.ipa # 仅重签名
|
30
|
+
|
31
|
+
$ pindo ipa autoresign demo.ipa --upload # 重签名并上传
|
32
|
+
|
33
|
+
$ pindo ipa autoresign demo.ipa --send # 重签名、上传并发送通知
|
18
34
|
DESC
|
19
35
|
|
20
36
|
self.arguments = [
|
@@ -121,10 +137,25 @@ module Pindo
|
|
121
137
|
description = "提交包重签名"
|
122
138
|
result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:description)
|
123
139
|
if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
|
124
|
-
|
125
|
-
|
140
|
+
PgyerHelper.share_instace.print_app_version_info(
|
141
|
+
app_info_obj: app_info_obj,
|
142
|
+
app_version_info_obj: result_data["data"]
|
143
|
+
)
|
144
|
+
# 始终发送给自己
|
145
|
+
PgyerHelper.share_instace.send_apptest_msg(
|
146
|
+
app_info_obj: app_info_obj,
|
147
|
+
app_version_info_obj: result_data["data"],
|
148
|
+
receiveType: "self"
|
149
|
+
)
|
150
|
+
|
151
|
+
# 如果有 --send 参数,额外发送到测试群
|
126
152
|
if @args_send_flag
|
127
|
-
PgyerHelper.share_instace.
|
153
|
+
PgyerHelper.share_instace.send_apptest_msg(
|
154
|
+
app_info_obj: app_info_obj,
|
155
|
+
app_version_info_obj: result_data["data"],
|
156
|
+
chatEnv: "DevTest",
|
157
|
+
receiveType: "chat"
|
158
|
+
)
|
128
159
|
end
|
129
160
|
end
|
130
161
|
end
|
@@ -20,7 +20,25 @@ module Pindo
|
|
20
20
|
self.summary = '提交时设置Xcode工程编译参数'
|
21
21
|
|
22
22
|
self.description = <<-DESC
|
23
|
-
|
23
|
+
提交时设置Xcode工程编译参数。
|
24
|
+
|
25
|
+
支持功能:
|
26
|
+
|
27
|
+
* 设置Xcode工程编译参数
|
28
|
+
|
29
|
+
* 自动增加版本号
|
30
|
+
|
31
|
+
* 支持编译后上传
|
32
|
+
|
33
|
+
使用示例:
|
34
|
+
|
35
|
+
$ pindo ipa import # 设置编译参数
|
36
|
+
|
37
|
+
$ pindo ipa import --build # 设置参数并编译
|
38
|
+
|
39
|
+
$ pindo ipa import --upload # 设置参数、编译并上传
|
40
|
+
|
41
|
+
$ pindo ipa import --send # 设置参数、编译、上传并发送通知
|
24
42
|
DESC
|
25
43
|
|
26
44
|
self.arguments = [
|
@@ -21,7 +21,27 @@ module Pindo
|
|
21
21
|
self.summary = '测试时设置Xcode工程编译参数并自动编译及上传'
|
22
22
|
|
23
23
|
self.description = <<-DESC
|
24
|
-
|
24
|
+
测试时设置Xcode工程编译参数并自动编译及上传。
|
25
|
+
|
26
|
+
支持功能:
|
27
|
+
|
28
|
+
* 设置Xcode工程编译参数
|
29
|
+
|
30
|
+
* 自动编译生成IPA
|
31
|
+
|
32
|
+
* 上传到测试平台
|
33
|
+
|
34
|
+
* 发送测试通知
|
35
|
+
|
36
|
+
使用示例:
|
37
|
+
|
38
|
+
$ pindo ipa output # 设置参数并编译
|
39
|
+
|
40
|
+
$ pindo ipa output --upload # 编译并上传
|
41
|
+
|
42
|
+
$ pindo ipa output --send # 编译、上传并发送通知
|
43
|
+
|
44
|
+
$ pindo ipa output --increase # 自动增加版本号
|
25
45
|
DESC
|
26
46
|
|
27
47
|
self.arguments = [
|
@@ -95,10 +115,25 @@ module Pindo
|
|
95
115
|
if !ipa_file_upload.nil? && !app_info_obj.nil?
|
96
116
|
result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:nil)
|
97
117
|
if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
|
98
|
-
|
99
|
-
|
118
|
+
PgyerHelper.share_instace.print_app_version_info(
|
119
|
+
app_info_obj: app_info_obj,
|
120
|
+
app_version_info_obj: result_data["data"]
|
121
|
+
)
|
100
122
|
if @args_send_flag
|
101
|
-
|
123
|
+
# 始终发送给自己
|
124
|
+
PgyerHelper.share_instace.send_apptest_msg(
|
125
|
+
app_info_obj: app_info_obj,
|
126
|
+
app_version_info_obj: result_data["data"],
|
127
|
+
receiveType: "self"
|
128
|
+
)
|
129
|
+
|
130
|
+
# 额外发送到测试群
|
131
|
+
PgyerHelper.share_instace.send_apptest_msg(
|
132
|
+
app_info_obj: app_info_obj,
|
133
|
+
app_version_info_obj: result_data["data"],
|
134
|
+
chatEnv: "DevTest",
|
135
|
+
receiveType: "chat"
|
136
|
+
)
|
102
137
|
end
|
103
138
|
end
|
104
139
|
end
|
@@ -4,13 +4,13 @@ require 'pindo/module/pgyer/pgyerhelper'
|
|
4
4
|
|
5
5
|
module Pindo
|
6
6
|
class Command
|
7
|
-
class
|
8
|
-
class Apptest <
|
7
|
+
class Jps < Command
|
8
|
+
class Apptest < Jps
|
9
9
|
|
10
|
-
self.summary = '获取
|
10
|
+
self.summary = '获取jps中指定app的测试链接和二维码'
|
11
11
|
|
12
12
|
self.description = <<-DESC
|
13
|
-
获取
|
13
|
+
获取jps中指定app的测试链接和二维码。
|
14
14
|
|
15
15
|
支持功能:
|
16
16
|
|
@@ -21,13 +21,13 @@ module Pindo
|
|
21
21
|
|
22
22
|
使用示例:
|
23
23
|
|
24
|
-
$ pindo
|
25
|
-
|
26
|
-
$ pindo
|
27
|
-
|
28
|
-
$ pindo
|
29
|
-
|
30
|
-
$ pindo
|
24
|
+
$ pindo jps apptest # 获取当前目录项目的测试链接
|
25
|
+
|
26
|
+
$ pindo jps apptest --proj=demo # 获取指定项目的测试链接
|
27
|
+
|
28
|
+
$ pindo jps apptest --list # 列出历史版本供选择
|
29
|
+
|
30
|
+
$ pindo jps apptest --send # 发送测试信息
|
31
31
|
DESC
|
32
32
|
|
33
33
|
self.arguments = [
|
@@ -36,10 +36,10 @@ module Pindo
|
|
36
36
|
|
37
37
|
def self.options
|
38
38
|
[
|
39
|
-
['--login', '强制再次登录
|
40
|
-
['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo
|
41
|
-
['--list', '列出上传记录并选择,用法:pindo
|
42
|
-
['--send', '
|
39
|
+
['--login', '强制再次登录jps网站'],
|
40
|
+
['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo jps apptest --proj=prancksoundv4'],
|
41
|
+
['--list', '列出上传记录并选择,用法:pindo jps apptest --list'],
|
42
|
+
['--send', '发送消息到项目群(注意:不带此参数也会发送给自己),用法:pindo jps apptest --send'],
|
43
43
|
].concat(super)
|
44
44
|
end
|
45
45
|
|
@@ -65,7 +65,7 @@ module Pindo
|
|
65
65
|
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
|
66
66
|
|
67
67
|
if app_info_obj.nil?
|
68
|
-
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称,
|
68
|
+
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, jps网站没有该App"
|
69
69
|
end
|
70
70
|
|
71
71
|
if !app_info_obj.nil?
|
@@ -76,17 +76,28 @@ module Pindo
|
|
76
76
|
raise Informative, "没有找到上传记录"
|
77
77
|
end
|
78
78
|
|
79
|
-
|
79
|
+
PgyerHelper.share_instace.print_app_version_info(
|
80
|
+
app_info_obj: app_info_obj,
|
81
|
+
app_version_info_obj: version_item_obj
|
82
|
+
)
|
80
83
|
|
81
|
-
|
84
|
+
# 始终发送给自己
|
85
|
+
PgyerHelper.share_instace.send_apptest_msg(
|
86
|
+
app_info_obj: app_info_obj,
|
87
|
+
app_version_info_obj: version_item_obj,
|
88
|
+
receiveType: "self"
|
89
|
+
)
|
82
90
|
|
91
|
+
# 如果有 --send 参数,额外发送到测试群
|
83
92
|
if @args_send_flag
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
93
|
+
PgyerHelper.share_instace.send_apptest_msg(
|
94
|
+
app_info_obj: app_info_obj,
|
95
|
+
app_version_info_obj: version_item_obj,
|
96
|
+
chatEnv: "DevTest",
|
97
|
+
receiveType: "chat"
|
98
|
+
)
|
88
99
|
end
|
89
|
-
|
100
|
+
|
90
101
|
end
|
91
102
|
|
92
103
|
end
|
@@ -94,4 +105,4 @@ module Pindo
|
|
94
105
|
end
|
95
106
|
end
|
96
107
|
end
|
97
|
-
end
|
108
|
+
end
|
@@ -0,0 +1,191 @@
|
|
1
|
+
require 'highline/import'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module Pindo
|
6
|
+
class Command
|
7
|
+
class Jps < Command
|
8
|
+
class Bind < Jps
|
9
|
+
|
10
|
+
self.summary = '将编译的包与工作流绑定'
|
11
|
+
|
12
|
+
self.description = <<-DESC
|
13
|
+
将编译的包与工作流绑定。
|
14
|
+
|
15
|
+
支持功能:
|
16
|
+
|
17
|
+
* 绑定编译包到指定工作流
|
18
|
+
|
19
|
+
* 管理包与工作流的关联关系
|
20
|
+
|
21
|
+
* 支持多个工作流配置
|
22
|
+
|
23
|
+
* 自动验证绑定状态
|
24
|
+
|
25
|
+
使用示例:
|
26
|
+
|
27
|
+
$ pindo jps bind # 绑定当前目录的包到默认工作流
|
28
|
+
|
29
|
+
$ pindo jps bind --proj=demo # 绑定指定项目到工作流
|
30
|
+
|
31
|
+
$ pindo jps bind --workflow=release # 绑定到指定的工作流
|
32
|
+
|
33
|
+
$ pindo jps bind --list # 列出所有可用的工作流
|
34
|
+
DESC
|
35
|
+
|
36
|
+
self.arguments = [
|
37
|
+
|
38
|
+
]
|
39
|
+
|
40
|
+
def self.options
|
41
|
+
[
|
42
|
+
['--proj', '指定要绑定的项目名称'],
|
43
|
+
['--workflow', '指定要绑定的工作流名称'],
|
44
|
+
['--list', '列出所有可用的工作流'],
|
45
|
+
['--unbind', '解除包与工作流的绑定'],
|
46
|
+
['--status', '查看当前绑定状态']
|
47
|
+
].concat(super)
|
48
|
+
end
|
49
|
+
|
50
|
+
def initialize(argv)
|
51
|
+
@args_proj_name = argv.option('proj')
|
52
|
+
@args_workflow_name = argv.option('workflow')
|
53
|
+
@args_list_flag = argv.flag?('list', false)
|
54
|
+
@args_unbind_flag = argv.flag?('unbind', false)
|
55
|
+
@args_status_flag = argv.flag?('status', false)
|
56
|
+
|
57
|
+
super
|
58
|
+
@additional_args = argv.remainder!
|
59
|
+
end
|
60
|
+
|
61
|
+
def validate!
|
62
|
+
super
|
63
|
+
if @args_list_flag || @args_status_flag
|
64
|
+
# 列出或查看状态时不需要其他参数
|
65
|
+
return
|
66
|
+
end
|
67
|
+
|
68
|
+
if @args_unbind_flag && @args_workflow_name.nil?
|
69
|
+
help! '解除绑定时需要指定工作流名称'
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def run
|
74
|
+
if @args_list_flag
|
75
|
+
list_workflows
|
76
|
+
elsif @args_status_flag
|
77
|
+
show_bind_status
|
78
|
+
elsif @args_unbind_flag
|
79
|
+
unbind_workflow
|
80
|
+
else
|
81
|
+
bind_to_workflow
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
private
|
86
|
+
|
87
|
+
def list_workflows
|
88
|
+
puts "\n可用的工作流列表:"
|
89
|
+
puts "─────────────────────────────"
|
90
|
+
|
91
|
+
# TODO: 从配置或API获取工作流列表
|
92
|
+
workflows = [
|
93
|
+
{ name: "dev", description: "开发环境工作流" },
|
94
|
+
{ name: "test", description: "测试环境工作流" },
|
95
|
+
{ name: "staging", description: "预发布环境工作流" },
|
96
|
+
{ name: "release", description: "正式发布工作流" }
|
97
|
+
]
|
98
|
+
|
99
|
+
workflows.each do |workflow|
|
100
|
+
puts " • #{workflow[:name].ljust(12)} - #{workflow[:description]}"
|
101
|
+
end
|
102
|
+
puts "─────────────────────────────\n"
|
103
|
+
end
|
104
|
+
|
105
|
+
def show_bind_status
|
106
|
+
puts "\n当前绑定状态:"
|
107
|
+
puts "─────────────────────────────"
|
108
|
+
|
109
|
+
# TODO: 从配置或API获取当前绑定状态
|
110
|
+
proj_name = @args_proj_name || get_current_project_name
|
111
|
+
|
112
|
+
if proj_name
|
113
|
+
puts " 项目名称: #{proj_name}"
|
114
|
+
puts " 绑定状态: 已绑定"
|
115
|
+
puts " 工作流: release"
|
116
|
+
puts " 绑定时间: #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}"
|
117
|
+
puts " 最后构建: #123"
|
118
|
+
else
|
119
|
+
puts " 当前没有绑定任何工作流"
|
120
|
+
end
|
121
|
+
puts "─────────────────────────────\n"
|
122
|
+
end
|
123
|
+
|
124
|
+
def bind_to_workflow
|
125
|
+
proj_name = @args_proj_name || get_current_project_name
|
126
|
+
workflow_name = @args_workflow_name || "dev"
|
127
|
+
|
128
|
+
if proj_name.nil? || proj_name.empty?
|
129
|
+
raise Informative, "无法确定项目名称,请使用 --proj 参数指定"
|
130
|
+
end
|
131
|
+
|
132
|
+
puts "\n正在绑定包到工作流..."
|
133
|
+
puts " 项目: #{proj_name}"
|
134
|
+
puts " 工作流: #{workflow_name}"
|
135
|
+
|
136
|
+
# TODO: 调用JPS API进行实际绑定
|
137
|
+
# result = JpsClient.bind_workflow(
|
138
|
+
# project: proj_name,
|
139
|
+
# workflow: workflow_name
|
140
|
+
# )
|
141
|
+
|
142
|
+
puts "\n✅ 绑定成功!"
|
143
|
+
puts " 包 '#{proj_name}' 已成功绑定到工作流 '#{workflow_name}'"
|
144
|
+
puts " 下次构建将自动触发该工作流"
|
145
|
+
end
|
146
|
+
|
147
|
+
def unbind_workflow
|
148
|
+
proj_name = @args_proj_name || get_current_project_name
|
149
|
+
workflow_name = @args_workflow_name
|
150
|
+
|
151
|
+
if proj_name.nil? || proj_name.empty?
|
152
|
+
raise Informative, "无法确定项目名称,请使用 --proj 参数指定"
|
153
|
+
end
|
154
|
+
|
155
|
+
puts "\n正在解除绑定..."
|
156
|
+
puts " 项目: #{proj_name}"
|
157
|
+
puts " 工作流: #{workflow_name}"
|
158
|
+
|
159
|
+
# TODO: 调用JPS API进行解除绑定
|
160
|
+
# result = JpsClient.unbind_workflow(
|
161
|
+
# project: proj_name,
|
162
|
+
# workflow: workflow_name
|
163
|
+
# )
|
164
|
+
|
165
|
+
puts "\n✅ 解除绑定成功!"
|
166
|
+
puts " 包 '#{proj_name}' 已从工作流 '#{workflow_name}' 解除绑定"
|
167
|
+
end
|
168
|
+
|
169
|
+
def get_current_project_name
|
170
|
+
# 尝试从当前目录获取项目名称
|
171
|
+
current_dir = Dir.pwd
|
172
|
+
|
173
|
+
# 1. 尝试从git仓库名获取
|
174
|
+
if File.directory?(File.join(current_dir, ".git"))
|
175
|
+
git_config = File.join(current_dir, ".git", "config")
|
176
|
+
if File.exist?(git_config)
|
177
|
+
config_content = File.read(git_config)
|
178
|
+
if config_content =~ /url = .*[\/:]([^\/]+?)(?:\.git)?$/
|
179
|
+
return $1
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
# 2. 尝试从目录名获取
|
185
|
+
File.basename(current_dir)
|
186
|
+
end
|
187
|
+
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
@@ -5,14 +5,14 @@ require 'pindo/module/pgyer/pgyerhelper'
|
|
5
5
|
|
6
6
|
module Pindo
|
7
7
|
class Command
|
8
|
-
class
|
9
|
-
class Comment <
|
8
|
+
class Jps < Command
|
9
|
+
class Comment < Jps
|
10
10
|
|
11
|
-
self.summary = '修改
|
11
|
+
self.summary = '修改jps中已经上传安装包的备注信息'
|
12
12
|
|
13
13
|
self.description = <<-DESC
|
14
|
-
修改
|
15
|
-
|
14
|
+
修改jps中已经上传安装包的备注信息。
|
15
|
+
|
16
16
|
支持功能:
|
17
17
|
|
18
18
|
* 修改版本备注
|
@@ -21,11 +21,11 @@ module Pindo
|
|
21
21
|
|
22
22
|
使用示例:
|
23
23
|
|
24
|
-
$ pindo
|
25
|
-
|
26
|
-
$ pindo
|
27
|
-
|
28
|
-
$ pindo
|
24
|
+
$ pindo jps comment # 修改当前目录项目的最新版本备注
|
25
|
+
|
26
|
+
$ pindo jps comment --proj=demo # 修改指定项目的版本备注
|
27
|
+
|
28
|
+
$ pindo jps comment --list # 列出历史版本供选择修改
|
29
29
|
DESC
|
30
30
|
|
31
31
|
self.arguments = [
|
@@ -34,10 +34,10 @@ module Pindo
|
|
34
34
|
|
35
35
|
def self.options
|
36
36
|
[
|
37
|
-
['--login', '强制再次登录
|
38
|
-
['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo
|
39
|
-
['--list', '列出上传记录并选择,用法:pindo
|
40
|
-
|
37
|
+
['--login', '强制再次登录jps网站'],
|
38
|
+
['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo jps comment --proj=prancksoundv4'],
|
39
|
+
['--list', '列出上传记录并选择,用法:pindo jps comment --list'],
|
40
|
+
|
41
41
|
].concat(super)
|
42
42
|
end
|
43
43
|
|
@@ -59,21 +59,21 @@ module Pindo
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def run
|
62
|
-
|
62
|
+
|
63
63
|
PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
|
64
64
|
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
|
65
65
|
|
66
66
|
if app_info_obj.nil?
|
67
|
-
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称,
|
67
|
+
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, jps网站没有该App"
|
68
68
|
end
|
69
69
|
|
70
|
-
|
70
|
+
|
71
71
|
version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
|
72
72
|
|
73
73
|
if version_item_obj.nil?
|
74
74
|
raise Informative, "没有找到上传记录"
|
75
75
|
end
|
76
|
-
|
76
|
+
|
77
77
|
PgyerHelper.share_instace.modify_coment(app_info_obj:app_info_obj, version_item_obj:version_item_obj)
|
78
78
|
|
79
79
|
end
|
@@ -81,4 +81,4 @@ module Pindo
|
|
81
81
|
end
|
82
82
|
end
|
83
83
|
end
|
84
|
-
end
|
84
|
+
end
|
@@ -6,14 +6,14 @@ require 'open-uri'
|
|
6
6
|
|
7
7
|
module Pindo
|
8
8
|
class Command
|
9
|
-
class
|
10
|
-
class Download <
|
9
|
+
class Jps < Command
|
10
|
+
class Download < Jps
|
11
11
|
|
12
12
|
|
13
|
-
self.summary = '从
|
13
|
+
self.summary = '从jps下载指定app的安装包'
|
14
14
|
|
15
15
|
self.description = <<-DESC
|
16
|
-
从
|
16
|
+
从jps下载指定app的安装包。
|
17
17
|
|
18
18
|
支持功能:
|
19
19
|
|
@@ -23,11 +23,11 @@ module Pindo
|
|
23
23
|
|
24
24
|
使用示例:
|
25
25
|
|
26
|
-
$ pindo
|
27
|
-
|
28
|
-
$ pindo
|
29
|
-
|
30
|
-
$ pindo
|
26
|
+
$ pindo jps download # 下载当前目录项目的最新版本
|
27
|
+
|
28
|
+
$ pindo jps download --proj=demo # 下载指定项目的安装包
|
29
|
+
|
30
|
+
$ pindo jps download --list # 列出历史版本供选择下载
|
31
31
|
DESC
|
32
32
|
|
33
33
|
self.arguments = [
|
@@ -36,9 +36,9 @@ module Pindo
|
|
36
36
|
|
37
37
|
def self.options
|
38
38
|
[
|
39
|
-
['--login', '强制再次登录
|
40
|
-
['--list', '列出上传记录并选择,用法:pindo
|
41
|
-
['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo
|
39
|
+
['--login', '强制再次登录jps网站'],
|
40
|
+
['--list', '列出上传记录并选择,用法:pindo jps download --list'],
|
41
|
+
['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo jps download --proj=prancksoundv4'],
|
42
42
|
].concat(super)
|
43
43
|
end
|
44
44
|
|
@@ -65,7 +65,7 @@ module Pindo
|
|
65
65
|
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
|
66
66
|
|
67
67
|
if app_info_obj.nil?
|
68
|
-
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称,
|
68
|
+
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, jps网站没有该App"
|
69
69
|
end
|
70
70
|
|
71
71
|
version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
|
@@ -73,10 +73,10 @@ module Pindo
|
|
73
73
|
if version_item_obj.nil?
|
74
74
|
raise Informative, "没有找到上传记录"
|
75
75
|
end
|
76
|
-
|
76
|
+
|
77
77
|
download_url = version_item_obj["cdnUrl"]
|
78
78
|
|
79
|
-
base_name = [app_info_obj["
|
79
|
+
base_name = [app_info_obj["projectName"], version_item_obj["projectVersion"], version_item_obj["incId"]].join("_")
|
80
80
|
base_name = base_name + File.extname(download_url)
|
81
81
|
# key_proj_name = proj_name.downcase.strip.gsub(/[\s\-_]/, '')
|
82
82
|
base_name = base_name.strip.gsub(/[\s]/, '').downcase
|
@@ -84,7 +84,7 @@ module Pindo
|
|
84
84
|
puts "文件名: #{file_name}"
|
85
85
|
puts "下载中..."
|
86
86
|
# File.binwrite(file_name, FastlaneCore::Helper.open_uri(download_url).read)
|
87
|
-
|
87
|
+
|
88
88
|
|
89
89
|
|
90
90
|
# 使用选项参数
|
@@ -98,17 +98,17 @@ module Pindo
|
|
98
98
|
|
99
99
|
URI.open(download_url, :content_length_proc => lambda { |total|
|
100
100
|
total_num = total
|
101
|
-
total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
|
101
|
+
total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
|
102
102
|
}, :progress_proc => lambda { |index_num|
|
103
103
|
|
104
104
|
progress_str = sprintf("%.2f", 100.0 * index_num / total_num )
|
105
|
-
total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
|
105
|
+
total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
|
106
106
|
index = 40.0 * index_num / total_num
|
107
107
|
download_message = "已下载:#{progress_str}\%【" + (char_in * (index/1).floor).ljust(40.0, char_out) + "】Total: #{total_size} M"
|
108
108
|
Funlog.instance.fancyinfo_update(download_message)
|
109
109
|
|
110
110
|
}) do |file|
|
111
|
-
File.binwrite(file_name, file.read)
|
111
|
+
File.binwrite(file_name, file.read)
|
112
112
|
end
|
113
113
|
|
114
114
|
Funlog.instance.fancyinfo_success(download_message)
|
@@ -119,4 +119,4 @@ module Pindo
|
|
119
119
|
end
|
120
120
|
end
|
121
121
|
end
|
122
|
-
end
|
122
|
+
end
|