pindo 4.9.3 → 4.9.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|