28 | Date: Fri Feb 2 15:53:12 2018 +0800
29 |
30 | [ob+7] update 1.10011.1
31 |
32 | 开始生成iOS补丁,请耐心等待...
33 | iOS 补丁生成完毕, ios 测试服上传开始...
34 | channel:ios type:1
35 | 上传开始,version:1.10011.1
36 | cdn/image.lzgjx.qq.com/QATest/Patch/Live/IOS
37 | 正在上传: IOS manifest...
38 | 开始上传对应的资源文件夹
39 | 上传成功
40 | 上传全部完成,请 QA 验收-- 如果中间有回退操作,请等待 cdn同步
41 |
42 |
43 | *******************************************
44 |
--------------------------------------------------------------------------------
/build_ab/login.html:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | 龙之谷-线上AB打包系统
9 |
10 |
11 |
12 | 龙之谷补丁登录系统
13 |
14 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/build_ab/loglist.php:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | 龙之谷-日志查询系统
9 |
10 | 日志".$id.":
";
17 | $txt = file_get_contents($log);
18 | $txt = preg_replace('/\n|\r\r/', '
', $txt);
19 | echo $txt;
20 | }
21 | elseif ($index==1)
22 | {
23 | # code...
24 | echo "日志正在生成,请等待当前步骤完成";
25 | }
26 | else
27 | {
28 | echo "对不起,你查询的日志不存在!";
29 | }
30 |
31 | ?>
32 |
33 |
34 |
--------------------------------------------------------------------------------
/build_ab/logmv.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 |
4 | cd /Library/WebServer/Documents
5 |
6 | mv *.log dn/log/
--------------------------------------------------------------------------------
/build_ab/main.php:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 | 龙之谷-AB打包系统
10 |
11 |
12 | auth == false)
26 | // {
27 | // echo "对不起,用户名不存在或者密码不正确";
28 | // return;
29 | // }
30 |
31 | require_once('./db.php');
32 | $query=DB::exist($_POST["name"]);
33 | if($query==0)
34 | {
35 | echo "对不起,你没有相关的权限";
36 | return;
37 | }
38 | else
39 | {
40 | setcookie("name",$_POST["name"],time()+360000);
41 | setcookie("pawd",$_POST["pawd"],time()+360000);
42 | ob_end_flush();
43 | DB::update($_POST["name"]);
44 | echo "欢迎使用线上 ab打包系统    说明文档
";
45 |
46 | }
47 |
48 | ?>
49 |
50 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 | onload(".$row['step'].",'".$row['name']."');";
194 | }
195 | ?>
196 |
197 |
--------------------------------------------------------------------------------
/build_ab/ob2release.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #用法
3 | echo "Usage: $0 "
4 |
5 | #全局配置
6 | git config --global credential.helper store
7 | git config --global merge.ours.driver true
8 |
9 | #接收参数
10 | GIT_PATH="$1"
11 | RELEASE_BRANCH="$2"
12 | MERGE_BRANCH="$3"
13 |
14 | echo 切目录到$GIT_PATH
15 | cd $GIT_PATH
16 |
17 | echo 合并分支${MERGE_BRANCH}
18 | git merge origin/${MERGE_BRANCH} -m "Merge branch ${MERGE_BRANCH} into ${RELEASE_BRANCH}"
19 |
20 | if [ $? -ne 0 ];then
21 | echo "error merge ${MERGE_BRANCH} to ${RELEASE_BRANCH}"
22 | exit 1
23 | fi
24 |
25 | #echo 提交分支${RELEASE_BRANCH}
26 | #git push origin ${RELEASE_BRANCH}
27 |
28 | if [ $? -ne 0 ];then
29 | echo "error push ${RELEASE_BRANCH}"
30 | exit 1
31 | fi
32 |
--------------------------------------------------------------------------------
/build_ab/read.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 龙之谷打补丁说明文档:
5 |
6 | 1. 请严格按照步骤顺序执行,不要跨步操作
7 |
8 | 2. 如果执行了前两步,可以回退。如果执行了第三步,不可以回退(需要提升版本号)
9 |
10 | 3. 每一步如果顺利执行完,都会看到***的结束行,否则就意味着中间步骤出错了(自检或者需要程序猿介入)
11 |
12 | 4. 只有加过权限的人才能进入该系统 默认对陌生人关闭,超级管理员网站请点击这里
13 |
14 | 5. 查看日志记录,请点击这里
15 |
16 | 点击第一个按钮:
17 | Git 清干净本地环境
18 | Git OB拉最新 Release拉最新 OB->Release(Merge)
19 | 统计和上个版本tag之间的文件变更,等待主管确认
20 |
21 | 点击第二个按钮:
22 | 开始Build Bundle
23 | 上传ab到qa测试服,等待qa测试
24 |
25 | 点击第三个按钮:
26 | 上传ab到正式服
27 | 提升版本号
28 | 至此,你可以告知服务器同学和腾讯运营了
29 |
30 | 点击第四个按钮:
31 | 回退本地操作(git), 如果你点击了第三个按钮,版本号会提升 否则就没有
32 |
33 | 点击第五个按钮:
34 | 日志系统 记录用户名、按钮id、时间戳、相关log信息
35 | 日志系统是从数据库抓取最近三十条记录
36 | 日志列表第一个链接如果是空,说明当前当做还在进行,进行完了日志就生成了
37 |
38 |
39 | 联系作者:penghuailiang@126.com
40 |
41 |
--------------------------------------------------------------------------------
/build_ab/readme.md:
--------------------------------------------------------------------------------
1 |
2 | 龙之谷打补丁说明文档:
3 |
4 | 1. 请严格按照步骤顺序执行,不要跨步操作
5 |
6 | 2. 如果执行了前两步,可以回退。如果执行了第三步,不可以回退(需要提升版本号)
7 |
8 | 3. 每一步如果顺利执行完,都会看到"*****"的结束行,否则就意味着中间步骤出错了(自检或者需要程序猿介入)
9 |
10 | 4. 只有加过权限的人才能进入该系统 默认对陌生人关闭,超级管理员网站请点击这里
11 |
12 | 5. 查看日志记录,请点击这里
13 |
14 | 点击第一个按钮:
15 | Git 清干净本地环境
16 | Git OB拉最新 Release拉最新 OB->Release(Merge)
17 | 统计和上个版本tag之间的文件变更,等待主管确认
18 |
19 | 点击第二个按钮:
20 | 开始Build Bundle
21 | 上传ab到qa测试服,等待qa测试
22 |
23 | 点击第三个按钮:
24 | 上传ab到正式服
25 | 提升版本号
26 | 至此,你可以告知服务器同学和腾讯运营了
27 |
28 | 点击第四个按钮:
29 | 回退本地操作(git), 如果你点击了第三个按钮,版本号会提升 否则就没有
30 |
31 | 点击第五个按钮:
32 | 日志系统 记录用户名、按钮id、时间戳、相关log信息
33 | 日志系统是从数据库抓取最近三十条记录
34 | 日志列表第一个链接如果是空,说明当前当做还在进行,进行完了日志就生成了
35 |
36 |
37 | 联系作者:penghuailiang@126.com
38 |
--------------------------------------------------------------------------------
/build_ab/reset.sh:
--------------------------------------------------------------------------------
1 | # ============================================
2 | #This tool is for reset inactive with php
3 | # ----------------------------------------------
4 | # Author: Huailiang.Peng
5 | # Data: 2018.01.24
6 | # ==============================================
7 | #!/bin/sh
8 |
9 | PROJECT_RES=/Users/dn/Documents/patch_res
10 |
11 | PROJECT_SRC=/Users/dn/Documents/patch_src
12 |
13 | PROJECT_Android=/Users/dn/Documents/patch_android/XProject
14 |
15 | PROJECT_Ios=/Users/dn/Documents/patch_android/XProject
16 |
17 | echo "stat reset res option"
18 |
19 | cd ${PROJECT_RES}
20 |
21 | git add .
22 |
23 | git reset --hard
24 |
25 | echo "res current status:"
26 |
27 | git log -1
28 |
29 | echo "git cleanup finish\n\n"
30 |
31 | ############################################
32 |
33 | echo "start reset src option"
34 |
35 | cd ${PROJECT_SRC}
36 |
37 | git add .
38 |
39 | git reset --hard
40 |
41 | git status -s .
42 |
43 | echo "src current status"
44 |
45 | git log -1
46 |
47 | echo "clean src finish\n\n"
48 |
49 |
50 | ################################################
51 |
52 | echo "start reset android env"
53 |
54 | cd ${PROJECT_Android}
55 |
56 | git add .
57 |
58 | git reset --hard
59 |
60 | git status -s .
61 |
62 | echo "android env current status:"
63 |
64 | git log -1
65 |
66 | echo "reset android env finish\n\n"
67 |
68 |
69 | ##############################################
70 |
71 | echo 'start reset ios env'
72 |
73 | cd ${PROJECT_Ios}
74 |
75 | git add .
76 |
77 | git reset --hard
78 |
79 | git status -s .
80 |
81 | echo "ios evn current status:"
82 |
83 | git log -1
84 |
85 | echo "reset ios env finish"
86 |
87 | echo "\n\n*************************************"
88 |
--------------------------------------------------------------------------------
/build_ab/server.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build_ab/shell.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | ";
5 |
6 | echo shell_exec("sh ./test.sh");
7 |
8 | echo "
finish"
9 | ?>
10 |
--------------------------------------------------------------------------------
/build_ab/spinner.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/huailiang/batch_build/939c85c8f37a57d9634572e9a94786f3463719b5/build_ab/spinner.gif
--------------------------------------------------------------------------------
/build_ab/style.css:
--------------------------------------------------------------------------------
1 |
2 | .btn { display: inline-block; *display: inline; *zoom: 1; padding: 4px 10px 4px; margin-bottom: 0; font-size: 13px; line-height: 18px; color: #333333; text-align: center;text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); vertical-align: middle; background-color: #f5f5f5; background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); background-image: linear-gradient(top, #ffffff, #e6e6e6); background-repeat: repeat-x; filter: progid:dximagetransform.microsoft.gradient(startColorstr=#ffffff, endColorstr=#e6e6e6, GradientType=0); border-color: #e6e6e6 #e6e6e6 #e6e6e6; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); border: 1px solid #e6e6e6; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); cursor: pointer; *margin-left: .3em; }
3 | .btn:hover, .btn:active, .btn.active, .btn.disabled, .btn[disabled] { background-color: #e6e6e6; }
4 | .btn-large { padding: 9px 14px; font-size: 15px; line-height: normal; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; }
5 | .btn:hover { color: #333333; text-decoration: none; background-color: #e6e6e6; background-position: 0 -15px; -webkit-transition: background-position 0.1s linear; -moz-transition: background-position 0.1s linear; -ms-transition: background-position 0.1s linear; -o-transition: background-position 0.1s linear; transition: background-position 0.1s linear; }
6 | .btn-primary, .btn-primary:hover { text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); color: #ffffff; }
7 | .btn-primary.active { color: rgba(255, 255, 255, 0.75); }
8 | .btn-primary { background-color: #4a77d4; background-image: -moz-linear-gradient(top, #6eb6de, #4a77d4); background-image: -ms-linear-gradient(top, #6eb6de, #4a77d4); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#6eb6de), to(#4a77d4)); background-image: -webkit-linear-gradient(top, #6eb6de, #4a77d4); background-image: -o-linear-gradient(top, #6eb6de, #4a77d4); background-image: linear-gradient(top, #6eb6de, #4a77d4); background-repeat: repeat-x; filter: progid:dximagetransform.microsoft.gradient(startColorstr=#6eb6de, endColorstr=#4a77d4, GradientType=0); border: 1px solid #3762bc; text-shadow: 1px 1px 1px rgba(0,0,0,0.4); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.5); }
9 | .btn-primary:hover, .btn-primary:active, .btn-primary.active, .btn-primary.disabled, .btn-primary[disabled] { filter: none; background-color: #4a77d4; }
10 | .btn-block { width: 100%; display:block; }
11 |
12 | * { -webkit-box-sizing:border-box; -moz-box-sizing:border-box; -ms-box-sizing:border-box; -o-box-sizing:border-box; box-sizing:border-box; }
13 |
14 | html { width: 100%; height:100%; overflow:hidden; }
15 |
16 | .login {
17 | position: absolute;
18 | top: 50%;
19 | left: 50%;
20 | margin: -150px 0 0 -150px;
21 | width:300px;
22 | height:300px;
23 | }
24 |
25 | .login h1 { color: #fff; text-shadow: 0 0 10px rgba(0,0,0,0.3); letter-spacing:1px; text-align:center; }
26 |
27 | input {
28 | width: 100%;
29 | margin-bottom: 10px;
30 | background: rgba(0,0,0,0.3);
31 | border: none;
32 | outline: none;
33 | padding: 10px;
34 | font-size: 13px;
35 | color: #fff;
36 | text-shadow: 1px 1px 1px rgba(0,0,0,0.3);
37 | border: 1px solid rgba(0,0,0,0.3);
38 | border-radius: 4px;
39 | box-shadow: inset 0 -5px 45px rgba(100,100,100,0.2), 0 1px 1px rgba(255,255,255,0.2);
40 | -webkit-transition: box-shadow .5s ease;
41 | -moz-transition: box-shadow .5s ease;
42 | -o-transition: box-shadow .5s ease;
43 | -ms-transition: box-shadow .5s ease;
44 | transition: box-shadow .5s ease;
45 | }
46 | input:focus { box-shadow: inset 0 -5px 45px rgba(100,100,100,0.4), 0 1px 1px rgba(255,255,255,0.2); }
--------------------------------------------------------------------------------
/build_ab/test.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ";
7 | echo exec('whoami');
8 | echo "
";
9 | echo shell_exec("sh test.sh");
10 | echo "
finish";
11 | ?>
12 |
13 |
14 |
--------------------------------------------------------------------------------
/build_ab/test.sh:
--------------------------------------------------------------------------------
1 | # ============================================
2 | #This tool is for test inactive with php
3 | # ----------------------------------------------
4 | # Author: Huailiang.Peng
5 | # Data: 2018.01.23
6 | # ==============================================
7 | #!/bin/sh
8 |
9 |
10 | UNITY_PATH=/Applications/Unity/Unity5.app/Contents/MacOS/Unity
11 |
12 | PROJECT_RES=/Users/dn/Documents/patch_res
13 |
14 | echo "this is shell test"
15 |
16 |
17 | cd ${PROJECT_RES}
18 |
19 | git pull
20 |
21 | git log -1
22 |
23 | # for ((i=1; i<=2; i++))
24 | # do
25 | # echo "hello with "${i}
26 | # done
27 |
28 |
29 | # echo "hello world!">/Library/WebServer/Documents/dn/Build.txt
30 |
31 | # cd /Library/WebServer/Documents/dn/
32 |
33 | # ls -al
34 |
35 |
36 | $UNITY_PATH -quit -batchmode -projectPath ${PROJECT_RES}"/XProject" -logFile /tmp/dn_patch.log -executeMethod XBundlePresent.TestGit
37 |
38 | echo "finish"
39 |
40 |
--------------------------------------------------------------------------------
/build_ab/upload.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #android or ios
4 | CHANNEL="$1"
5 | #测试服=1 正式服=2
6 | TYPE="$2"
7 |
8 | echo "channel:"${CHANNEL}" type:"${TYPE}
9 |
10 | SUB="Android"
11 | BRAN="QATest"
12 |
13 | PROJECT_PATH=/Users/dn/Documents/patch_android/XProject
14 |
15 | if [ ${CHANNEL} == "ios" ];then
16 | SUB="IOS"
17 | PROJECT_PATH=/Users/dn/Documents/patch_ios/XProject
18 | fi
19 |
20 | if [ ${TYPE} == 2 ];then
21 | BRAN="Official"
22 | fi
23 |
24 | VERSION=`cat ${PROJECT_PATH}/Shell/next-version.txt`
25 |
26 | if [ "${VERSION}" = "" ];then
27 | echo "error, not find version.bytes"
28 | exit 4
29 | fi
30 |
31 |
32 | echo "上传开始,version:"${VERSION}
33 |
34 | cd ${PROJECT_PATH}/Assets/Bundle/${SUB}
35 |
36 | # upload the manifest at first
37 |
38 | #/usr/local/bin/lftp ftp.swift.qq.com -u fworks_889 -p 9052 --password NE@d216drAg << EOF
39 | /usr/local/bin/lftp -u dn,up.dn.123u 42.62.51.126 << EOF
40 |
41 | echo cdn/image.lzgjx.qq.com/${BRAN}/Patch/Live/${SUB}
42 |
43 | cd cdn/image.lzgjx.qq.com/${BRAN}/Patch/Live/${SUB}
44 |
45 | echo "正在上传: "${SUB}" manifest..."
46 |
47 | put manifest.${VERSION}.assetbundle
48 |
49 | put manifest.${VERSION}.assetbundle || { echo "upload manifest failed!"; exit 1; }
50 |
51 | bye
52 |
53 | EOF
54 |
55 | # then upload directory
56 | if [ -d ${VERSION} ];then
57 |
58 | cd ${VERSION}
59 |
60 | #/usr/local/bin/lftp ftp.swift.qq.com -u fworks_889 -p 9052 --password NE@d216drAg << EOF
61 | /usr/local/bin/lftp -u dn,up.dn.123u 42.62.51.126 << EOF
62 |
63 | cd cdn/image.lzgjx.qq.com/${BRAN}/Patch/Live/${SUB}
64 |
65 | echo "开始上传对应的资源文件夹"
66 |
67 | mkdir ${VERSION}
68 |
69 | mirror -R ./ ${VERSION} || { echo "upload failed!"; exit 1; }
70 |
71 | bye
72 |
73 | EOF
74 |
75 | else
76 |
77 | echo "没有检测到图片等非文本资源相关的更新"
78 |
79 | fi
80 |
81 | echo "上传成功"
82 |
83 |
84 |
--------------------------------------------------------------------------------
/build_ab/uploadofficial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 |
4 | UNITY_PATH=/Applications/Unity/Unity5.app/Contents/MacOS/Unity
5 |
6 | PROJECT_Android=/Users/dn/Documents/patch_android/XProject
7 |
8 | PROJECT_Ios=/Users/dn/Documents/patch_ios/XProject
9 |
10 | Shelll_Path=/Library/WebServer/Documents/dn
11 |
12 | sh ${Shelll_Path}/upload.sh "android" 2
13 |
14 | echo "开始提升版本号"
15 |
16 | $UNITY_PATH -quit -batchmode -projectPath ${PROJECT_Android} -logFile /tmp/dn_and_patch.log -executeMethod XBundlePresent.JenkinsPush
17 |
18 | if [ -f "${PROJECT_Android}/Shell/Error.Log" ];then
19 | echo "error occur, as list:"
20 | cat ${PROJECT_Android}/Shell/Error.Log
21 | exit 1
22 | fi
23 |
24 |
25 | echo "Android 操作结束\n\n"
26 |
27 | ######################### ios ###########################
28 |
29 | sh ${Shelll_Path}/upload.sh "ios" 2
30 |
31 | echo "开始提升版本号"
32 |
33 | cd {PROJECT_Ios}
34 |
35 | cd ../
36 |
37 | git pull
38 |
39 | $UNITY_PATH -quit -batchmode -projectPath ${PROJECT_Ios} -logFile /tmp/dn_ios_patch.log -executeMethod XBundlePresent.JenkinsPush
40 |
41 | if [ -f "${PROJECT_Ios}/Shell/Error.Log" ];then
42 | echo "error occur, as list:"
43 | cat ${PROJECT_Ios}/Shell/Error.Log
44 | exit 1
45 | fi
46 |
47 | echo "ios 操作结束"
48 |
49 | echo "\n\n*********************************"
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 |
2 | # Batch Build
3 |
4 | 此项目包含两部分内容:
5 |
6 | - 出包脚本 build目录
7 |
8 | - 出补丁脚本 build_ab目录
9 |
10 |
11 | Jenkins出包脚本:
12 |
13 | unity 支持以batch的模式打包,需要c#测预留好接口,Shell可以直接调用c#接口用以出包
14 |
15 | 如何安装jenkins, 可以参考作者的一篇文章: https://penghuailiang.gitee.io/blog/2018/autopublish/
16 |
17 | 进入build目录,shell脚本说明:
18 |
19 | - build_android.sh 用以出android包,生成apk
20 | - build_ios.sh 用以出ios包,生成ipa 需要配置和脚本里对应的证书
21 | - build_windows.sh 用以生成windows包,生成zip
22 | - build_ios_batch.sh 可以指定git某个节点,生成ios包
23 | - git.sh git切分支,清理本地环境,拉取最新
24 | - git_tag.sh git清理环境,切到制定节点,跟分支无关
25 | - qrcode.sh 用以生成二维码下载链接,如果是ios平台,需要相关企业证书和搭建支持items-services协议的环境
26 | - sendmail.sh 打包生成后,给打包人发送邮件
27 | - upload.sh 上传包体到本地web服务器,同时生成下载链接,作者在本地mac上搭建了一个apache服务器
28 | - xbuild2dll.sh 将代码编程dll, 需要本地安装了MonoDeveloper
29 | - symbol.sh 用来将符号表上传到bugly服务器 ios
30 | - mailformat 邮件内容格式
31 |
32 |
33 | jenkins 支持脚本的方式调用(区别网页):
34 |
35 | 安装python-jenkins
36 |
37 | ```sh
38 | sudo pip3 install python-jenkins
39 | ```
40 |
41 | - operation.py 展示了如何获取jenkins的信息, 并通过脚本触发job, 通过这样的操作就可以写定时器远程自动触发, 生成独有的uid等
42 |
43 | 想获取更多关于python-jenkins 可以访问 https://python-jenkins.readthedocs.io/en/latest/
44 |
45 |
46 | 打补丁说明文档:
47 |
48 | 进入build_ab目录:
49 |
50 |
51 | 1. 请严格按照步骤顺序执行,不要跨步操作
52 |
53 | 2. 如果执行了前两步,可以回退。如果执行了第三步,不可以回退(需要提升版本号)
54 |
55 | 3. 每一步如果顺利执行完,都会看到"*****"的结束行,否则就意味着中间步骤出错了(自检或者需要程序猿介入)
56 |
57 | 4. 只有加过权限的人才能进入该系统 默认对陌生人关闭,超级管理员网站请点击这里
58 |
59 | 5. 查看日志记录,请点击这里
60 |
61 | 点击第一个按钮:
62 | Git 清干净本地环境
63 | Git OB拉最新 Release拉最新 OB->Release(Merge)
64 | 统计和上个版本tag之间的文件变更,等待主管确认
65 |
66 | 点击第二个按钮:
67 | 开始Build Bundle
68 | 上传ab到qa测试服,等待qa测试
69 |
70 | 点击第三个按钮:
71 | 上传ab到正式服
72 | 提升版本号
73 | 至此,你可以告知服务器同学和腾讯运营了
74 |
75 | 点击第四个按钮:
76 | 回退本地操作(git), 如果你点击了第三个按钮,版本号会提升 否则就没有
77 |
78 | 点击第五个按钮:
79 | 日志系统 记录用户名、按钮id、时间戳、相关log信息
80 | 日志系统是从数据库抓取最近三十条记录
81 | 日志列表第一个链接如果是空,说明当前当做还在进行,进行完了日志就生成了
82 |
83 |
84 | 联系作者:peng_huailiang@qq.com
85 |
--------------------------------------------------------------------------------