pindo 4.9.3 → 4.9.4
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/pgyerclient.rb +1 -1
- data/lib/pindo/command/dev/autobuild.rb +52 -118
- data/lib/pindo/command/dev/build.rb +39 -54
- data/lib/pindo/command/dev/debug.rb +6 -4
- data/lib/pindo/command/dev/repoinit.rb +128 -0
- data/lib/pindo/command/dev/tag.rb +25 -12
- data/lib/pindo/command/dev.rb +1 -2
- data/lib/pindo/command/ipa/import.rb +1 -1
- data/lib/pindo/command/pgyer/apptest.rb +18 -7
- data/lib/pindo/command/pgyer/comment.rb +15 -3
- data/lib/pindo/command/pgyer/download.rb +15 -3
- data/lib/pindo/command/pgyer/login.rb +14 -4
- data/lib/pindo/command/pgyer/resign.rb +20 -4
- data/lib/pindo/command/pgyer/upload.rb +52 -8
- data/lib/pindo/command/unity/ipa.rb +0 -1
- data/lib/pindo/version.rb +1 -1
- metadata +2 -7
- data/lib/pindo/command/dev/applovin.rb +0 -223
- data/lib/pindo/command/dev/autoresign.rb +0 -143
- data/lib/pindo/command/dev/confusecode.rb +0 -127
- data/lib/pindo/command/dev/confuseproj.rb +0 -111
- data/lib/pindo/command/dev/createbuild.rb +0 -156
- data/lib/pindo/command/dev/pgyercert.rb +0 -75
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0abd0eb9f20e688da8b9af08a82ea9d8dcb23e3933417ee9500a63542396d20c
|
|
4
|
+
data.tar.gz: a35604b42071177e27fa45ba3da6231b32d268ed2f1a3d381fbe3b3b8401a1bc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fade81f54a82cbbc4be6258703b706c19b13fabfb0fe23ff2436202d891e1796765c538482da925e96239ed24fde08a64d87c2f918db5a46393f69a9e2094898
|
|
7
|
+
data.tar.gz: 194d66f52e3894e8bd1749420ee549e2977b11536c4702581cfc295d5afa9f88cdce4fe73a7af9a50f52a4500e18eb2145ec4f143a084a4f26c2cb601c544f58
|
|
@@ -12,23 +12,50 @@ module Pindo
|
|
|
12
12
|
|
|
13
13
|
include Appselect
|
|
14
14
|
|
|
15
|
+
# 命令的简要说明 - 自动编译并发布工程
|
|
15
16
|
self.summary = '自动编译工程,并支持上传ipa到测试网站'
|
|
16
17
|
|
|
18
|
+
# 命令的详细说明,包含用法示例
|
|
17
19
|
self.description = <<-DESC
|
|
18
|
-
|
|
20
|
+
自动编译工程并支持上传到测试平台。
|
|
21
|
+
|
|
22
|
+
支持功能:
|
|
23
|
+
|
|
24
|
+
* 自动编译工程
|
|
25
|
+
|
|
26
|
+
* 上传到测试平台
|
|
27
|
+
|
|
28
|
+
* 发送测试通知
|
|
29
|
+
|
|
30
|
+
* 支持多种编译模式
|
|
31
|
+
|
|
32
|
+
使用示例:
|
|
33
|
+
|
|
34
|
+
$ pindo dev autobuild # 使用开发证书编译
|
|
35
|
+
|
|
36
|
+
$ pindo dev autobuild --deploy # 使用发布bundle id
|
|
37
|
+
|
|
38
|
+
$ pindo dev autobuild --adhoc # 使用adhoc证书编译
|
|
39
|
+
|
|
40
|
+
$ pindo dev autobuild --proj=myapp # 指定项目名称
|
|
41
|
+
|
|
42
|
+
$ pindo dev autobuild --upload # 上传编译包
|
|
43
|
+
|
|
44
|
+
$ pindo dev autobuild --send # 发送测试通知
|
|
19
45
|
DESC
|
|
20
46
|
|
|
47
|
+
# 命令的参数列表
|
|
21
48
|
self.arguments = [
|
|
22
|
-
|
|
23
49
|
]
|
|
24
50
|
|
|
51
|
+
# 命令的选项列表
|
|
25
52
|
def self.options
|
|
26
53
|
[
|
|
27
|
-
['--deploy',
|
|
28
|
-
['--adhoc',
|
|
29
|
-
['--proj',
|
|
30
|
-
['--upload',
|
|
31
|
-
['--send',
|
|
54
|
+
['--deploy', '默认用开发的bundle id,用法:pindo dev autobuild --deploy'],
|
|
55
|
+
['--adhoc', '默认用dev证书,使用--adhoc设置使用adhoc证书编译'],
|
|
56
|
+
['--proj', '指定上传到pgyer对应的项目名称(大小写空格忽略)'],
|
|
57
|
+
['--upload', '是否上传编译后的ipa'],
|
|
58
|
+
['--send', '上传到之后是否发送测试信息'],
|
|
32
59
|
].concat(super)
|
|
33
60
|
end
|
|
34
61
|
|
|
@@ -57,125 +84,32 @@ module Pindo
|
|
|
57
84
|
|
|
58
85
|
pindo_unity_project_dir = Dir.pwd
|
|
59
86
|
build_helper = Pindo::BuildHelper.share_instance
|
|
60
|
-
|
|
61
|
-
raise Informative, "当前目录不是iOS工程,请在iOS工程根目录下执行此命令"
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
if @args_upload_flag
|
|
65
|
-
is_need_add_tag,tag_action_parms = build_helper.check_is_need_add_tag?(pindo_unity_project_dir)
|
|
66
|
-
if is_need_add_tag
|
|
67
|
-
Pindo::Command::Dev::Tag::run(tag_action_parms)
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
mainapp_bundleid= nil
|
|
72
|
-
if @args_deploy_flag
|
|
73
|
-
mainapp_bundleid = get_selected_deploy_bundleid()
|
|
74
|
-
else
|
|
75
|
-
mainapp_bundleid = get_selected_dev_bundleid()
|
|
76
|
-
end
|
|
87
|
+
pindo_unity_project_dir = Dir.pwd
|
|
77
88
|
|
|
78
|
-
app_info_obj = nil
|
|
79
|
-
if @args_upload_flag
|
|
80
|
-
proj_name = @args_proj_name
|
|
81
|
-
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
|
|
82
|
-
end
|
|
83
89
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
Pindo::Command::Deploy::Pullconfig::run(args_temp)
|
|
89
|
-
|
|
90
|
-
project_dir = Dir.pwd
|
|
91
|
-
Dir.chdir(project_dir)
|
|
92
|
-
config_json_file = File.join(project_dir,"config.json")
|
|
93
|
-
Debug::modify_cert_with_project(project_dir:project_dir, config_file:config_json_file)
|
|
94
|
-
|
|
95
|
-
if File.exist?(File.join(project_dir, "Podfile"))
|
|
96
|
-
|
|
97
|
-
args_temp = []
|
|
98
|
-
args_temp << config_json_file
|
|
99
|
-
Pindo::Command::Lib::Update::run([])
|
|
100
|
-
|
|
101
|
-
begin
|
|
102
|
-
if File.exist?(File.join(project_dir, "Podfile.lock"))
|
|
103
|
-
FileUtils.rm_rf(File.join(project_dir, "Podfile.lock"))
|
|
104
|
-
end
|
|
105
|
-
if File.exist?(File.join(project_dir,"Pods"))
|
|
106
|
-
FileUtils.rm_rf(File.join(project_dir, "Pods"))
|
|
107
|
-
end
|
|
108
|
-
puts "正在执行pod deintegrate..."
|
|
109
|
-
system 'pod deintegrate'
|
|
110
|
-
puts "正在执行pod install..."
|
|
111
|
-
system 'pod install'
|
|
112
|
-
rescue => error
|
|
113
|
-
puts(error.to_s)
|
|
114
|
-
raise Informative, "pod install失败!!先pod install 完成后成编译 !"
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
Dir.chdir(project_dir)
|
|
118
|
-
pod_lock_file = File.join(project_dir, "Podfile.lock")
|
|
119
|
-
if !File.exist?(pod_lock_file)
|
|
120
|
-
raise Informative, "pod install失败!!先pod install 完成后成编译 !"
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
end
|
|
124
|
-
|
|
90
|
+
build_helper = Pindo::BuildHelper.share_instance
|
|
91
|
+
project_type = build_helper.project_type(pindo_unity_project_dir)
|
|
125
92
|
|
|
126
93
|
args_temp = []
|
|
127
|
-
if @
|
|
128
|
-
|
|
94
|
+
args_temp << "--proj=#{@args_proj_name}" if @args_proj_name
|
|
95
|
+
args_temp << "--upload" if @args_upload_flag
|
|
96
|
+
args_temp << "--send" if @args_send_flag
|
|
97
|
+
args_temp << "--adhoc" if @args_adhoc_flag
|
|
98
|
+
args_temp << "--deploy" if @args_deploy_flag
|
|
99
|
+
|
|
100
|
+
case project_type
|
|
101
|
+
when :ios
|
|
102
|
+
puts "iOS工程, 请使用 pindo ios autobuild"
|
|
103
|
+
Pindo::Command::Ios::Autobuild::run(args_temp)
|
|
104
|
+
when :android
|
|
105
|
+
puts "Android工程, 请使用 pindo android autobuild"
|
|
106
|
+
when :unity
|
|
107
|
+
raise Informative, "Unity工程, 请使用 pindo unity ipa 或者pindo unity apk"
|
|
129
108
|
else
|
|
130
|
-
|
|
109
|
+
raise Informative, "当前目录不是工程目录,不能编译"
|
|
131
110
|
end
|
|
132
111
|
|
|
133
|
-
project_fullname = Dir.glob(File.join(project_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
|
134
|
-
if !project_fullname.nil?
|
|
135
|
-
project_obj = Xcodeproj::Project.open(project_fullname)
|
|
136
|
-
project_build_platform = project_obj.root_object.build_configuration_list.get_setting("SDKROOT")["Release"]
|
|
137
|
-
if !project_build_platform.nil? && project_build_platform.eql?("macosx")
|
|
138
|
-
@args_macos_flag = true
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
if @args_macos_flag
|
|
143
|
-
args_temp << "--macos"
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
Pindo::Command::Deploy::Cert::run(args_temp)
|
|
147
|
-
|
|
148
|
-
Dir.chdir(project_dir)
|
|
149
|
-
Pindo::Command::Deploy::Build::run(args_temp)
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
pindo_new_project_dir = Dir.pwd
|
|
153
|
-
build_path = File.join(pindo_new_project_dir, "build", "*.{ipa,app}")
|
|
154
|
-
ipa_file_upload = Dir.glob(build_path).max_by {|f| File.mtime(f)}
|
|
155
|
-
|
|
156
|
-
if !ipa_file_upload.nil? && !app_info_obj.nil?
|
|
157
|
-
description = nil
|
|
158
|
-
if File.exist?(File.join(pindo_new_project_dir, ".release_info"))
|
|
159
|
-
description = File.read(File.join(pindo_new_project_dir, ".release_info"))
|
|
160
|
-
else
|
|
161
|
-
if File.exist?(File.join(pindo_new_project_dir, ".git"))
|
|
162
|
-
description = git!(%W(-C #{pindo_new_project_dir} show -s --format=%h::%s)).strip
|
|
163
|
-
end
|
|
164
|
-
end
|
|
165
|
-
result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:description)
|
|
166
|
-
if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
|
|
167
|
-
msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"])
|
|
168
|
-
PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
|
|
169
|
-
if @args_send_flag
|
|
170
|
-
PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
|
|
171
|
-
end
|
|
172
|
-
end
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
system "open #{project_dir}"
|
|
176
|
-
|
|
177
112
|
end
|
|
178
|
-
|
|
179
113
|
end
|
|
180
114
|
end
|
|
181
115
|
end
|
|
@@ -3,24 +3,43 @@ require 'fileutils'
|
|
|
3
3
|
require 'json'
|
|
4
4
|
require 'xcodeproj'
|
|
5
5
|
require 'gym'
|
|
6
|
+
require 'pindo/module/build/buildhelper'
|
|
6
7
|
|
|
7
8
|
module Pindo
|
|
8
9
|
class Command
|
|
9
10
|
class Dev < Command
|
|
10
11
|
class Build < Dev
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
# 命令的简要说明 - 编译工程并上传测试
|
|
13
14
|
self.summary = '编译工程,并支持上传ipa到测试网站'
|
|
14
15
|
|
|
16
|
+
# 命令的详细说明,包含用法示例
|
|
15
17
|
self.description = <<-DESC
|
|
16
|
-
|
|
18
|
+
编译工程并支持上传到测试平台。
|
|
19
|
+
|
|
20
|
+
支持功能:
|
|
21
|
+
|
|
22
|
+
* 编译工程
|
|
23
|
+
|
|
24
|
+
* 上传到测试平台
|
|
25
|
+
|
|
26
|
+
* 发送测试通知
|
|
27
|
+
|
|
28
|
+
使用示例:
|
|
29
|
+
|
|
30
|
+
$ pindo dev build # 仅编译
|
|
31
|
+
|
|
32
|
+
$ pindo dev build --upload # 编译并上传
|
|
33
|
+
|
|
34
|
+
$ pindo dev build --send # 编译并发送通知
|
|
35
|
+
|
|
36
|
+
$ pindo dev build --proj=myapp # 指定项目名称
|
|
17
37
|
DESC
|
|
18
38
|
|
|
39
|
+
# 命令的参数列表
|
|
19
40
|
self.arguments = [
|
|
20
|
-
|
|
21
41
|
]
|
|
22
42
|
|
|
23
|
-
|
|
24
43
|
def self.options
|
|
25
44
|
[
|
|
26
45
|
['--proj', '指定上传到pgyer对应的项目名称(大小写空格忽略),用法:pindo dev build --proj=aichatv4'],
|
|
@@ -47,62 +66,28 @@ module Pindo
|
|
|
47
66
|
def run
|
|
48
67
|
|
|
49
68
|
pindo_unity_project_dir = Dir.pwd
|
|
50
|
-
build_helper = Pindo::BuildHelper.share_instance
|
|
51
|
-
unless build_helper.ios_project?(pindo_unity_project_dir)
|
|
52
|
-
raise Informative, "当前目录不是iOS工程,请在iOS工程根目录下执行此命令"
|
|
53
|
-
end
|
|
54
|
-
if @args_upload_flag
|
|
55
|
-
is_need_add_tag,tag_action_parms = build_helper.check_is_need_add_tag?(pindo_unity_project_dir)
|
|
56
|
-
if is_need_add_tag
|
|
57
|
-
Pindo::Command::Dev::Tag::run(tag_action_parms)
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
app_info_obj = nil
|
|
63
|
-
if @args_upload_flag
|
|
64
|
-
proj_name = @args_proj_name
|
|
65
|
-
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
|
|
66
|
-
end
|
|
67
69
|
|
|
70
|
+
build_helper = Pindo::BuildHelper.share_instance
|
|
71
|
+
project_type = build_helper.project_type(pindo_unity_project_dir)
|
|
68
72
|
|
|
69
73
|
args_temp = []
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
description = git!(%W(-C #{pindo_new_project_dir} show -s --format=%h::%s)).strip
|
|
85
|
-
unless !description.nil? && description.length > 10
|
|
86
|
-
description = nil
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:description)
|
|
92
|
-
if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
|
|
93
|
-
msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"])
|
|
94
|
-
|
|
95
|
-
PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
|
|
96
|
-
if @args_send_flag
|
|
97
|
-
PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
|
|
98
|
-
end
|
|
99
|
-
end
|
|
74
|
+
args_temp << "--proj=#{@args_proj_name}" if @args_proj_name
|
|
75
|
+
args_temp << "--upload" if @args_upload_flag
|
|
76
|
+
args_temp << "--send" if @args_send_flag
|
|
77
|
+
case project_type
|
|
78
|
+
when :ios
|
|
79
|
+
puts "iOS 工程, 请使用 pindo ios build"
|
|
80
|
+
Pindo::Command::Ios::Build::run(args_temp)
|
|
81
|
+
when :android
|
|
82
|
+
puts "Android 工程, 请使用 pindo android build"
|
|
83
|
+
Pindo::Command::Android::Build::run(args_temp)
|
|
84
|
+
when :unity
|
|
85
|
+
raise Informative, "Unity 工程, 请使用 pindo unity ipa 或者pindo unity apk"
|
|
86
|
+
else
|
|
87
|
+
raise Informative, "当前目录不是工程目录,不能编译"
|
|
100
88
|
end
|
|
101
89
|
|
|
102
|
-
|
|
103
90
|
end
|
|
104
|
-
|
|
105
|
-
|
|
106
91
|
end
|
|
107
92
|
end
|
|
108
93
|
end
|
|
@@ -9,8 +9,10 @@ module Pindo
|
|
|
9
9
|
|
|
10
10
|
include XcodeCertHelper
|
|
11
11
|
|
|
12
|
+
# 命令的简要说明 - 更新证书并设置工程
|
|
12
13
|
self.summary = '更新证书并使用新证书设置工程'
|
|
13
14
|
|
|
15
|
+
# 命令的详细说明,包含用法示例
|
|
14
16
|
self.description = <<-DESC
|
|
15
17
|
更新证书并使用新证书设置工程。
|
|
16
18
|
|
|
@@ -30,15 +32,17 @@ module Pindo
|
|
|
30
32
|
|
|
31
33
|
$ pindo dev debug --deploy # 使用发布bundle id
|
|
32
34
|
|
|
33
|
-
$ pindo dev debug --adhoc
|
|
35
|
+
$ pindo dev debug --adhoc # 使用adhoc证书
|
|
34
36
|
|
|
35
|
-
$ pindo dev debug --macos
|
|
37
|
+
$ pindo dev debug --macos # 使用macOS证书
|
|
36
38
|
DESC
|
|
37
39
|
|
|
40
|
+
# 命令的参数列表
|
|
38
41
|
self.arguments = [
|
|
39
42
|
# 暂无参数
|
|
40
43
|
]
|
|
41
44
|
|
|
45
|
+
# 命令的选项列表
|
|
42
46
|
def self.options
|
|
43
47
|
[
|
|
44
48
|
['--deploy', '使用发布bundle id(默认使用开发bundle id)'],
|
|
@@ -149,10 +153,8 @@ module Pindo
|
|
|
149
153
|
|
|
150
154
|
end
|
|
151
155
|
|
|
152
|
-
|
|
153
156
|
end
|
|
154
157
|
|
|
155
|
-
|
|
156
158
|
end
|
|
157
159
|
end
|
|
158
160
|
end
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
require 'highline/import'
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
|
|
4
|
+
module Pindo
|
|
5
|
+
class Command
|
|
6
|
+
class Dev < Command
|
|
7
|
+
class Repoinit < Dev
|
|
8
|
+
|
|
9
|
+
include Pindo::Githelper
|
|
10
|
+
|
|
11
|
+
# 命令的简要说明 - 初始化git仓库配置
|
|
12
|
+
self.summary = '初始化git仓库中git cliff的配置'
|
|
13
|
+
|
|
14
|
+
# 命令的详细说明,包含用法示例
|
|
15
|
+
self.description = <<-DESC
|
|
16
|
+
初始化git仓库中git cliff的配置。
|
|
17
|
+
|
|
18
|
+
支持功能:
|
|
19
|
+
|
|
20
|
+
* 初始化git cliff配置
|
|
21
|
+
|
|
22
|
+
* 生成配置文件
|
|
23
|
+
|
|
24
|
+
使用示例:
|
|
25
|
+
|
|
26
|
+
$ pindo dev repoinit # 初始化配置
|
|
27
|
+
DESC
|
|
28
|
+
|
|
29
|
+
# 命令的参数列表
|
|
30
|
+
self.arguments = []
|
|
31
|
+
|
|
32
|
+
def self.options
|
|
33
|
+
[
|
|
34
|
+
].concat(super)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def initialize(argv)
|
|
38
|
+
@mode = argv.option('mode') || 'minor'
|
|
39
|
+
@force_retag = argv.flag?('retag', false)
|
|
40
|
+
|
|
41
|
+
unless ['major', 'minor', 'patch'].include?(@mode)
|
|
42
|
+
raise Informative, "mode参数必须是 major, minor 或 patch"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
super
|
|
46
|
+
@additional_args = argv.remainder!
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def write_gitignore(project_dir)
|
|
50
|
+
gitignore_path = File.join(project_dir, '.gitignore')
|
|
51
|
+
gitignore_content = <<~GITIGNORE
|
|
52
|
+
# Build logs
|
|
53
|
+
build_ios.log
|
|
54
|
+
CHANGELOG.md
|
|
55
|
+
|
|
56
|
+
# Platform specific directories
|
|
57
|
+
/GoodPlatform/iOS/*
|
|
58
|
+
/GoodPlatform/Android/*
|
|
59
|
+
/GoodPlatform/MacOS/*
|
|
60
|
+
/GoodPlatform/BaseiOS/Unity/*
|
|
61
|
+
/GoodPlatform/BaseiOS/Pods/
|
|
62
|
+
/GoodPlatform/BaseiOS/Podfile.lock
|
|
63
|
+
/GoodPlatform/BaseAndroid/Unity/*
|
|
64
|
+
/GoodPlatform/BaseMac/Unity/*
|
|
65
|
+
GITIGNORE
|
|
66
|
+
|
|
67
|
+
# Append to existing .gitignore or create new one
|
|
68
|
+
File.open(gitignore_path, 'a') do |f|
|
|
69
|
+
f.puts("\n# Added by Pindo")
|
|
70
|
+
f.puts(gitignore_content)
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def run
|
|
75
|
+
|
|
76
|
+
clone_pindo_common_config_repo(force_delete:false)
|
|
77
|
+
pindo_common_dir = pindo_single_config.pindo_common_configdir
|
|
78
|
+
|
|
79
|
+
current_dir = Dir.pwd
|
|
80
|
+
puts
|
|
81
|
+
Funlog.instance.fancyinfo_start("添加仓库日志变更配置 git-cliff")
|
|
82
|
+
if is_git_directory?(local_repo_dir: current_dir)
|
|
83
|
+
current_git_root_path = git_root_directory(local_repo_dir: current_dir)
|
|
84
|
+
if File.exist?(File.join(pindo_common_dir, 'cliff.toml'))
|
|
85
|
+
FileUtils.cp_r(File.join(pindo_common_dir, 'cliff.toml'), File.join(current_git_root_path, 'cliff.toml'))
|
|
86
|
+
end
|
|
87
|
+
Funlog.instance.fancyinfo_update("仓库添加cliff配置")
|
|
88
|
+
write_gitignore(current_git_root_path)
|
|
89
|
+
Funlog.instance.fancyinfo_update("仓库添加.gitignore")
|
|
90
|
+
Dir.chdir(current_dir)
|
|
91
|
+
current_branch = git!(%W(-C #{current_dir} rev-parse --abbrev-ref HEAD)).strip
|
|
92
|
+
git!(%W(-C #{current_dir} add cliff.toml))
|
|
93
|
+
git!(%W(-C #{current_dir} add .gitignore))
|
|
94
|
+
git!(%W(-C #{current_dir} commit -m "更新cliff配置"))
|
|
95
|
+
git!(%W(-C #{current_dir} push origin #{current_branch}))
|
|
96
|
+
|
|
97
|
+
else
|
|
98
|
+
Funlog.instance.fancyinfo_error("当前目录不是git仓库,请在git仓库根目录下执行此命令")
|
|
99
|
+
raise Informative, "当前目录不是git仓库,请在git仓库根目录下执行此命令"
|
|
100
|
+
end
|
|
101
|
+
Funlog.instance.fancyinfo_success("仓库配置完成!")
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
puts "\n检查git-cliff命令是否安装"
|
|
106
|
+
# 请检查git-cliff命令是否安装
|
|
107
|
+
begin
|
|
108
|
+
if !system('git-cliff --version')
|
|
109
|
+
# /bin/bash -c "$(curl -fsSL https://gitee.com/goodtools/env/raw/master/gitcliff_install.sh)"
|
|
110
|
+
#安装git-cliff
|
|
111
|
+
system('bash -c "$(curl -fsSL https://gitee.com/goodtools/env/raw/master/gitcliff_install.sh)"')
|
|
112
|
+
else
|
|
113
|
+
puts "git-cliff已安装"
|
|
114
|
+
end
|
|
115
|
+
rescue
|
|
116
|
+
raise Informative, "安装git-cliff出现错误"
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
@@ -5,23 +5,36 @@ module Pindo
|
|
|
5
5
|
class Command
|
|
6
6
|
class Dev < Command
|
|
7
7
|
class Tag < Dev
|
|
8
|
+
# 命令的简要说明 - 发布代码并添加tag
|
|
8
9
|
self.summary = '发布代码,添加tag,添加发布信息,并合并到发布分支'
|
|
10
|
+
|
|
11
|
+
# 命令的详细说明,包含用法示例
|
|
9
12
|
self.description = <<-DESC
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
发布代码,添加tag,添加发布信息,并合并到发布分支。
|
|
14
|
+
|
|
15
|
+
支持功能:
|
|
16
|
+
|
|
17
|
+
* 处理未提交的文件
|
|
18
|
+
|
|
19
|
+
* 添加版本tag
|
|
20
|
+
|
|
21
|
+
* 合并到发布分支
|
|
22
|
+
|
|
23
|
+
使用示例:
|
|
24
|
+
|
|
25
|
+
$ pindo dev tag # 使用minor模式创建tag
|
|
26
|
+
|
|
27
|
+
$ pindo dev tag --mode=major # 使用major模式创建tag
|
|
28
|
+
|
|
29
|
+
$ pindo dev tag --mode=patch # 使用patch模式创建tag
|
|
30
|
+
|
|
31
|
+
$ pindo dev tag --retag # 强制重新打tag
|
|
22
32
|
DESC
|
|
33
|
+
|
|
34
|
+
# 命令的参数列表
|
|
23
35
|
self.arguments = []
|
|
24
36
|
|
|
37
|
+
# 命令的选项列表
|
|
25
38
|
def self.options
|
|
26
39
|
[
|
|
27
40
|
['--mode', '指定版本号增加模式(major/minor/patch),默认minor'],
|
data/lib/pindo/command/dev.rb
CHANGED
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
require 'pindo/command/dev/tag'
|
|
5
5
|
require 'pindo/command/dev/debug'
|
|
6
|
-
require 'pindo/command/dev/autoresign'
|
|
7
6
|
require 'pindo/command/dev/autobuild'
|
|
8
7
|
require 'pindo/command/dev/build'
|
|
9
|
-
require 'pindo/command/dev/
|
|
8
|
+
require 'pindo/command/dev/repoinit'
|
|
10
9
|
|
|
11
10
|
|
|
12
11
|
module Pindo
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
1
|
require 'highline/import'
|
|
4
2
|
require 'fileutils'
|
|
5
3
|
require 'pindo/module/pgyer/pgyerhelper'
|
|
@@ -9,11 +7,27 @@ module Pindo
|
|
|
9
7
|
class Pgyer < Command
|
|
10
8
|
class Apptest < Pgyer
|
|
11
9
|
|
|
12
|
-
|
|
13
10
|
self.summary = '获取pgyer中指定app的测试链接和二维码'
|
|
14
11
|
|
|
15
12
|
self.description = <<-DESC
|
|
16
|
-
|
|
13
|
+
获取pgyer中指定app的测试链接和二维码。
|
|
14
|
+
|
|
15
|
+
支持功能:
|
|
16
|
+
|
|
17
|
+
* 获取app测试链接
|
|
18
|
+
* 获取app二维码
|
|
19
|
+
* 发送测试信息
|
|
20
|
+
* 查看历史版本
|
|
21
|
+
|
|
22
|
+
使用示例:
|
|
23
|
+
|
|
24
|
+
$ pindo pgyer apptest # 获取当前目录项目的测试链接
|
|
25
|
+
|
|
26
|
+
$ pindo pgyer apptest --proj=demo # 获取指定项目的测试链接
|
|
27
|
+
|
|
28
|
+
$ pindo pgyer apptest --list # 列出历史版本供选择
|
|
29
|
+
|
|
30
|
+
$ pindo pgyer apptest --send # 发送测试信息
|
|
17
31
|
DESC
|
|
18
32
|
|
|
19
33
|
self.arguments = [
|
|
@@ -29,7 +43,6 @@ module Pindo
|
|
|
29
43
|
].concat(super)
|
|
30
44
|
end
|
|
31
45
|
|
|
32
|
-
|
|
33
46
|
def initialize(argv)
|
|
34
47
|
|
|
35
48
|
@args_login_flag = argv.flag?('login', false)
|
|
@@ -55,7 +68,6 @@ module Pindo
|
|
|
55
68
|
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
|
|
56
69
|
end
|
|
57
70
|
|
|
58
|
-
|
|
59
71
|
if !app_info_obj.nil?
|
|
60
72
|
|
|
61
73
|
version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
|
|
@@ -79,7 +91,6 @@ module Pindo
|
|
|
79
91
|
|
|
80
92
|
end
|
|
81
93
|
|
|
82
|
-
|
|
83
94
|
end
|
|
84
95
|
end
|
|
85
96
|
end
|