diff --git a/README.md b/README.md index 71b76febf6c0947ed348be397efc62b1efe385f6..4fa89c4bbf283940b302b43d39f9c746717ce88e 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ fork本仓库,本地修改代码后,提交到您自己的仓库,然后打T ``` 如果您的代码仓设为私有,请将以下账户添加为成员,赋予只读权限,用于拉取代码 ``` -cloudphone@petalmail.com +cphdeveloper@huawei.com ``` + 如果您已经在本地搭建过AOSP的本地编译环境,您在提交代码前可以先将修改过的代码拷贝至您的本地编译环境,检查是否存在语法错误 ``` @@ -40,9 +40,10 @@ make framework -j ##### 3. 触发构建 构建前请先在本地修改build.sh,配置以下变量 ``` -TAG 您要构建代码的TAG或Branch,例如 v1.0.1 -KEY 请向华为云手机技术支持人员获取 -SERVER_ADDR 请向华为云手机技术支持人员获取 +BRANCH_TAG 您要构建代码的tag/Branch,例如 v1.0.1 +KEY 验证key,请向华为云手机技术支持人员获取 +IMG_NAME 您自定义的镜像产物别名 +SERVER_ADDR 服务器地址,请向华为云手机技术支持人员获取 ``` + 配置完成后,可执行build.sh触发构建,构建过程在远端的服务器上进行,并且会实时打印构建进度,如果由于您提交的代码问题导致构建失败,请重新提交代码,并更新TAG后重新触发构建,如果构建成功,您将获取到一个镜像ID,请在华为云手机控制台使用该镜像ID更新镜像。支持两种构建方式: + 全量构建,会清理中间产物,速度较慢,建议生产环境使用 @@ -53,9 +54,9 @@ SERVER_ADDR 请向华为云手机技术支持人员获取 ``` ./build.sh -i ``` -+ 查看构建日志 ++ 查看构建日志,您在使用build.sh执行构建的过程中,可实时打印当前日志。您也可以通过执行下面命令获取当前全量日志打印。 ``` -todo +./build.sh -l ``` ##### 4. 自定义系统签名 构建系统默认使用AOSP7原生代码的系统签名,如果您需要使用自己的系统签名,请按照以下步骤提交,构建系统会替换原生系统签名 diff --git a/build.sh b/build.sh new file mode 100644 index 0000000000000000000000000000000000000000..e9b327a6302f76c9ee9720a90843cceb134ae6c3 --- /dev/null +++ b/build.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +# 验证 +KEY="" +# 指定克隆分支 +BRANCH_TAG="" +# 镜像别名 +IMG_NAME="" +# 编译服务器地址 +SERVER_ADDR="" + +# 默认不执行增量编译 +INCREMENTAL=0 +while getopts ":il" opt; do + case "${opt}" in + i) INCREMENTAL=${OPTARG};; + l) + curl -X POST -k --insecure -H "key: ${KEY}" https://${SERVER_ADDR}:8081/get_log + exit 0;; + ?) + echo "input param error! exit." + exit 1;; + esac +done + +echo '{ + "region":"cn-east-3", + "tag":"'${BRANCH_TAG}'", + "type":"aosp7", + "name":"'${IMG_NAME}'", + "incrementalBuild":"'${INCREMENTAL}'" +}' > curl_tmp.json + +curl -X POST -k --insecure -H "Content-Type: application/json" -H "key: ${KEY}" -d @curl_tmp.json https://${SERVER_ADDR}:8081/image/build & +build_pid=$! + +function quit_build () +{ + echo "quit command caught, stop building..." + curl -X POST -k --insecure -H "key: ${KEY}" https://${SERVER_ADDR}:8081/stop_build + sleep 1 + kill -9 $build_pid + echo '\n' +} +trap "quit_build" SIGINT + +until false +do + sleep 5 + curl -X POST -k --insecure -H "key: ${KEY}" https://${SERVER_ADDR}:8081/get_log + is_running=$(ps | grep $build_pid) + if [ "${is_running}" == "" ]; then + rm curl_tmp.json + break + fi +done