16e7c69efSopenharmony_ci#!/bin/bash 26e7c69efSopenharmony_ci 36e7c69efSopenharmony_ciCUR_PATH=$(cd $(dirname $0) && pwd) 46e7c69efSopenharmony_ciBASE_PATH=$(dirname ${CUR_PATH}) 56e7c69efSopenharmony_ci 66e7c69efSopenharmony_ci#时间统计 76e7c69efSopenharmony_cistartTime=`date +%Y%m%d-%H:%M:%S` 86e7c69efSopenharmony_cistartTime_s=`date +%s` 96e7c69efSopenharmony_ci 106e7c69efSopenharmony_ci#npm 116e7c69efSopenharmony_cinpm config set @ohos:registry=https://repo.harmonyos.com/npm/ 126e7c69efSopenharmony_ci 136e7c69efSopenharmony_ci#ohpm 146e7c69efSopenharmony_ci#ohpm config set @ohos:registry=https://repo.harmonyos.com/ohpm/ 156e7c69efSopenharmony_ci 166e7c69efSopenharmony_ciTEST_HAP_PATH=entry/build/default/outputs/ohosTest/entry-ohosTest-unsigned.hap 176e7c69efSopenharmony_ciHAP_PATH=entry/build/default/outputs/default/entry-default-unsigned.hap 186e7c69efSopenharmony_ciSTAGE_TEST_HAP_PATH=product/build/default/outputs/ohosTest/product-ohosTest-unsigned.hap 196e7c69efSopenharmony_ciSTAGE_HAP_PATH=product/build/default/outputs/default/product-default-unsigned.hap 206e7c69efSopenharmony_ciTIME=16 216e7c69efSopenharmony_ciRESOLVE=0 226e7c69efSopenharmony_ci 236e7c69efSopenharmony_ciarg_sign="true" 246e7c69efSopenharmony_ciarg_sdk_path=${BASE_PATH}/sdk 256e7c69efSopenharmony_ciarg_full_sdk_path=${BASE_PATH}/sdk-full 266e7c69efSopenharmony_ciarg_help="0" 276e7c69efSopenharmony_ciarg_compile_dir="" 286e7c69efSopenharmony_ciarg_jdk="" 296e7c69efSopenharmony_ciarg_node="" 306e7c69efSopenharmony_ciarg_ohpm="false" 316e7c69efSopenharmony_ciarg_p="" 326e7c69efSopenharmony_ci 336e7c69efSopenharmony_ciurl="" 346e7c69efSopenharmony_citag_url='url=' 356e7c69efSopenharmony_ciname="" 366e7c69efSopenharmony_citag_name='name=' 376e7c69efSopenharmony_cibranch="" 386e7c69efSopenharmony_citag_branch='branch=' 396e7c69efSopenharmony_citag_full_list='fullSdkAssembleList=' 406e7c69efSopenharmony_citag_basic_list='basicSignList=' 416e7c69efSopenharmony_cibasic_list=() 426e7c69efSopenharmony_cifull_list=() 436e7c69efSopenharmony_cicore_list=() 446e7c69efSopenharmony_citag_core_list='coreSignList=' 456e7c69efSopenharmony_cisystem_app_list=() 466e7c69efSopenharmony_citag_system_app_list='systemAppList=' 476e7c69efSopenharmony_cinormal_list=() 486e7c69efSopenharmony_cipublic_list=() 496e7c69efSopenharmony_ci#没测试用例 506e7c69efSopenharmony_cisimple_list=() 516e7c69efSopenharmony_ci 526e7c69efSopenharmony_cifunction print_help() { 536e7c69efSopenharmony_ci cat <<EOF 546e7c69efSopenharmony_ci use assembleHap [options] <mainclass> [args...] 556e7c69efSopenharmony_ci 566e7c69efSopenharmony_ci --p=config path 576e7c69efSopenharmony_ci --sign=true/false - Whether the signature (default:$arg_sign) 586e7c69efSopenharmony_ci --sdk_path=[public sdk absolute address] (default:$arg_sdk_path) 596e7c69efSopenharmony_ci --full_sdk_path=[full sdk absolute address] (default:$arg_full_sdk_path) 606e7c69efSopenharmony_ci --ohpm=true/false -whether use ohpm (default:$arg_ohpm) 616e7c69efSopenharmony_ci --help - prints help screen 626e7c69efSopenharmony_ci 636e7c69efSopenharmony_ciEOF 646e7c69efSopenharmony_ci} 656e7c69efSopenharmony_ci 666e7c69efSopenharmony_cifunction parse_arguments() { 676e7c69efSopenharmony_ci local helperKey=""; 686e7c69efSopenharmony_ci local helperValue=""; 696e7c69efSopenharmony_ci local current=""; 706e7c69efSopenharmony_ci 716e7c69efSopenharmony_ci while [ "$1" != "" ]; do 726e7c69efSopenharmony_ci current=$1; 736e7c69efSopenharmony_ci helperKey=${current#*--}; 746e7c69efSopenharmony_ci helperKey=${helperKey%%=*}; 756e7c69efSopenharmony_ci helperKey=$(echo "$helperKey" | tr '-' '_'); 766e7c69efSopenharmony_ci helperValue=${current#*=}; 776e7c69efSopenharmony_ci if [ "$helperValue" == "$current" ]; then 786e7c69efSopenharmony_ci helperValue="1"; 796e7c69efSopenharmony_ci fi 806e7c69efSopenharmony_ci # echo "eval arg_$helperKey=\"$helperValue\""; 816e7c69efSopenharmony_ci 826e7c69efSopenharmony_ci eval "arg_$helperKey=\"$helperValue\""; 836e7c69efSopenharmony_ci shift 846e7c69efSopenharmony_ci done 856e7c69efSopenharmony_ci} 866e7c69efSopenharmony_ci 876e7c69efSopenharmony_ciparse_arguments ${@}; 886e7c69efSopenharmony_ci 896e7c69efSopenharmony_ciif [ "$arg_help" != "0" ]; then 906e7c69efSopenharmony_ci print_help; 916e7c69efSopenharmony_ci exit 1; 926e7c69efSopenharmony_cifi 936e7c69efSopenharmony_ci 946e7c69efSopenharmony_ciif [ "$arg_p" == "" ]; then 956e7c69efSopenharmony_ci echo "--p cannot be empty" 966e7c69efSopenharmony_ci exit 1 976e7c69efSopenharmony_cifi 986e7c69efSopenharmony_ci 996e7c69efSopenharmony_ciif [ "$arg_jdk" != "" ]; then 1006e7c69efSopenharmony_ci export JAVA_HOME=${arg_jdk} 1016e7c69efSopenharmony_ci export PATH=$JAVA_HOME/bin:$PATH 1026e7c69efSopenharmony_cifi 1036e7c69efSopenharmony_ci 1046e7c69efSopenharmony_ciif [ "$arg_node" != "" ]; then 1056e7c69efSopenharmony_ci export NODE_HOME=${arg_node} 1066e7c69efSopenharmony_ci export PATH=$NODE_HOME:$PATH 1076e7c69efSopenharmony_cifi 1086e7c69efSopenharmony_ci 1096e7c69efSopenharmony_cifunction clear_dir(){ 1106e7c69efSopenharmony_ci if [ ! -d "$1" ]; then 1116e7c69efSopenharmony_ci mkdir -p $1 1126e7c69efSopenharmony_ci else 1136e7c69efSopenharmony_ci rm -rf $1/* 1146e7c69efSopenharmony_ci fi 1156e7c69efSopenharmony_ci} 1166e7c69efSopenharmony_cifunction clear_file(){ 1176e7c69efSopenharmony_ci if [ -f "$1" ]; then 1186e7c69efSopenharmony_ci rm $1 1196e7c69efSopenharmony_ci fi 1206e7c69efSopenharmony_ci touch $1 1216e7c69efSopenharmony_ci} 1226e7c69efSopenharmony_ci 1236e7c69efSopenharmony_cifunction del_dir(){ 1246e7c69efSopenharmony_ci if [ -d "$1" ]; then 1256e7c69efSopenharmony_ci rm -rf $1/* 1266e7c69efSopenharmony_ci fi 1276e7c69efSopenharmony_ci} 1286e7c69efSopenharmony_cifunction del_file(){ 1296e7c69efSopenharmony_ci if [ -f "$1" ]; then 1306e7c69efSopenharmony_ci rm $1 1316e7c69efSopenharmony_ci fi 1326e7c69efSopenharmony_ci} 1336e7c69efSopenharmony_ci 1346e7c69efSopenharmony_cifunction is_project_root(){ 1356e7c69efSopenharmony_ci if [[ -f $1"/build-profile.json5" && -f $1"/hvigorfile.js" ]] || [[ -f $1"/build-profile.json5" && -f $1"/hvigorfile.ts" ]]; then 1366e7c69efSopenharmony_ci while read line 1376e7c69efSopenharmony_ci do 1386e7c69efSopenharmony_ci if [[ ${line} =~ "srcPath" ]]; then 1396e7c69efSopenharmony_ci pa=${line%\"*} 1406e7c69efSopenharmony_ci pa=${pa##*\".} 1416e7c69efSopenharmony_ci if [ -d "$1/AppScope" ]; then 1426e7c69efSopenharmony_ci is_entry=`cat $1${pa}/src/main/module.json5 | sed 's/ //g' | grep "\"type\":\"entry\""` 1436e7c69efSopenharmony_ci is_feature=`cat $1${pa}/src/main/module.json5 | sed 's/ //g' | grep "\"type\":\"feature\""` 1446e7c69efSopenharmony_ci if [[ "${is_entry}" != "" || "${is_feature}" != "" ]]; then 1456e7c69efSopenharmony_ci if [[ -d $1${pa}"/src/ohosTest" ]]; then 1466e7c69efSopenharmony_ci return 0 1476e7c69efSopenharmony_ci fi 1486e7c69efSopenharmony_ci fi 1496e7c69efSopenharmony_ci else 1506e7c69efSopenharmony_ci is_entry=`cat $1${pa}/src/main/config.json | sed 's/ //g' | grep "\"moduleType\":\"entry\""` 1516e7c69efSopenharmony_ci is_feature=`cat $1${pa}/src/main/config.json | sed 's/ //g' | grep "\"moduleType\":\"feature\""` 1526e7c69efSopenharmony_ci if [[ "${is_entry}" != "" || "${is_feature}" != "" ]]; then 1536e7c69efSopenharmony_ci if [[ -d $1${pa}"/src/ohosTest" ]]; then 1546e7c69efSopenharmony_ci return 0 1556e7c69efSopenharmony_ci fi 1566e7c69efSopenharmony_ci fi 1576e7c69efSopenharmony_ci fi 1586e7c69efSopenharmony_ci fi 1596e7c69efSopenharmony_ci done < $1"/build-profile.json5" 1606e7c69efSopenharmony_ci return 1 1616e7c69efSopenharmony_ci else 1626e7c69efSopenharmony_ci return 2 1636e7c69efSopenharmony_ci fi 1646e7c69efSopenharmony_ci} 1656e7c69efSopenharmony_ci 1666e7c69efSopenharmony_cifunction read_project(){ 1676e7c69efSopenharmony_ci if [ -d "$1" ] 1686e7c69efSopenharmony_ci then 1696e7c69efSopenharmony_ci # 是项目工程根目录则记录当前路径 否则递归判断 1706e7c69efSopenharmony_ci is_project_root $1 1716e7c69efSopenharmony_ci res=$? 1726e7c69efSopenharmony_ci if [ ${res} -eq 0 ]; then 1736e7c69efSopenharmony_ci public_list[${#public_list[*]}]=${1#*compile-tool/projects/${name}/} 1746e7c69efSopenharmony_ci elif [ ${res} -eq 1 ]; then 1756e7c69efSopenharmony_ci simple_list[${#simple_list[*]}]=${1#*compile-tool/projects/${name}/} 1766e7c69efSopenharmony_ci elif [ ${res} -eq 2 ]; then 1776e7c69efSopenharmony_ci for file in `ls $1` 1786e7c69efSopenharmony_ci do 1796e7c69efSopenharmony_ci read_project "${1}/${file}" 1806e7c69efSopenharmony_ci done 1816e7c69efSopenharmony_ci fi 1826e7c69efSopenharmony_ci fi 1836e7c69efSopenharmony_ci} 1846e7c69efSopenharmony_ci 1856e7c69efSopenharmony_cifunction exclude_full_project(){ 1866e7c69efSopenharmony_ci if [ ${#full_list[*]} -eq 0 ]; then 1876e7c69efSopenharmony_ci return 1886e7c69efSopenharmony_ci fi 1896e7c69efSopenharmony_ci diff_list=() 1906e7c69efSopenharmony_ci full_true_list=() 1916e7c69efSopenharmony_ci f=0 1926e7c69efSopenharmony_ci t=0 1936e7c69efSopenharmony_ci flag=0 1946e7c69efSopenharmony_ci for item1 in "${public_list[@]}"; do 1956e7c69efSopenharmony_ci for item2 in "${full_list[@]}"; do 1966e7c69efSopenharmony_ci if [[ "${item1}" == "${item2}" ]]; then 1976e7c69efSopenharmony_ci full_true_list[f]=${item2} 1986e7c69efSopenharmony_ci f=$((f+1)) 1996e7c69efSopenharmony_ci flag=1 2006e7c69efSopenharmony_ci break 2016e7c69efSopenharmony_ci fi 2026e7c69efSopenharmony_ci done 2036e7c69efSopenharmony_ci if [ ${flag} -eq 0 ]; then 2046e7c69efSopenharmony_ci diff_list[t]=${item1} 2056e7c69efSopenharmony_ci t=$((t+1)) 2066e7c69efSopenharmony_ci else 2076e7c69efSopenharmony_ci flag=0 2086e7c69efSopenharmony_ci fi 2096e7c69efSopenharmony_ci done 2106e7c69efSopenharmony_ci public_list=(${diff_list[@]}) 2116e7c69efSopenharmony_ci full_list=(${full_true_list[@]}) 2126e7c69efSopenharmony_ci echo "use public sdk project numbers = "${#public_list[@]} 2136e7c69efSopenharmony_ci echo "use full sdk project numbers = "${#full_list[@]} 2146e7c69efSopenharmony_ci} 2156e7c69efSopenharmony_ci 2166e7c69efSopenharmony_cifunction del_module_name(){ 2176e7c69efSopenharmony_ci local name=${1} 2186e7c69efSopenharmony_ci for i in "${!module_name[@]}" 2196e7c69efSopenharmony_ci do 2206e7c69efSopenharmony_ci if [[ "${module_name[i]}" == "${name}" ]]; then 2216e7c69efSopenharmony_ci unset module_name[i] 2226e7c69efSopenharmony_ci echo "移除"${name}" , 剩余 : "${module_name[@]} >> ${compile_result_error}/${hap}".log" 2>&1 2236e7c69efSopenharmony_ci return 0 2246e7c69efSopenharmony_ci fi 2256e7c69efSopenharmony_ci done 2266e7c69efSopenharmony_ci return 1 2276e7c69efSopenharmony_ci} 2286e7c69efSopenharmony_ci 2296e7c69efSopenharmony_cifunction load_dep(){ 2306e7c69efSopenharmony_ci local cur_m_n=${1} 2316e7c69efSopenharmony_ci local cur_module 2326e7c69efSopenharmony_ci for cur_module in ${module_list[@]} 2336e7c69efSopenharmony_ci do 2346e7c69efSopenharmony_ci if [[ "${cur_module}" =~ "${cur_m_n}" ]]; then 2356e7c69efSopenharmony_ci del_module_name ${cur_m_n} 2366e7c69efSopenharmony_ci for m_n_1 in ${module_name[@]} 2376e7c69efSopenharmony_ci do 2386e7c69efSopenharmony_ci rr=$(cat ${cur_module}"/package.json" | grep "${m_n_1}") 2396e7c69efSopenharmony_ci if [[ "${rr}" != "" ]]; then 2406e7c69efSopenharmony_ci load_dep ${m_n_1} 2416e7c69efSopenharmony_ci fi 2426e7c69efSopenharmony_ci done 2436e7c69efSopenharmony_ci cd ${cur_module} 2446e7c69efSopenharmony_ci echo ${cur_module}" 执行npm install" >> ${compile_result_error}/${hap}".log" 2>&1 2456e7c69efSopenharmony_ci npm i >> ${compile_result_error}/${hap}".log" 2>&1 2466e7c69efSopenharmony_ci fi 2476e7c69efSopenharmony_ci done 2486e7c69efSopenharmony_ci} 2496e7c69efSopenharmony_ci 2506e7c69efSopenharmony_cifunction load_oh_dep(){ 2516e7c69efSopenharmony_ci local cur_m_n=${1} 2526e7c69efSopenharmony_ci local cur_module 2536e7c69efSopenharmony_ci for cur_module in ${module_list[@]} 2546e7c69efSopenharmony_ci do 2556e7c69efSopenharmony_ci if [[ "${cur_module}" =~ "${cur_m_n}" ]]; then 2566e7c69efSopenharmony_ci del_module_name ${cur_m_n} 2576e7c69efSopenharmony_ci for m_n_1 in ${module_name[@]} 2586e7c69efSopenharmony_ci do 2596e7c69efSopenharmony_ci rr=$(cat ${cur_module}"/oh-package.json5" | grep "${m_n_1}") 2606e7c69efSopenharmony_ci if [[ "${rr}" != "" ]]; then 2616e7c69efSopenharmony_ci load_oh_dep ${m_n_1} 2626e7c69efSopenharmony_ci fi 2636e7c69efSopenharmony_ci done 2646e7c69efSopenharmony_ci cd ${cur_module} 2656e7c69efSopenharmony_ci echo ${cur_module}" 执行ohpm install" >> ${compile_result_error}/${hap}".log" 2>&1 2666e7c69efSopenharmony_ci if [[ -e "oh-package.json5" ]]; then 2676e7c69efSopenharmony_ci ohpm i >> ${compile_result_error}/${hap}".log" 2>&1 2686e7c69efSopenharmony_ci else 2696e7c69efSopenharmony_ci ohpm init >> ${compile_result_error}/${hap}".log" 2>&1 2706e7c69efSopenharmony_ci ohpm install >> ${compile_result_error}/${hap}".log" 2>&1 2716e7c69efSopenharmony_ci fi 2726e7c69efSopenharmony_ci fi 2736e7c69efSopenharmony_ci done 2746e7c69efSopenharmony_ci} 2756e7c69efSopenharmony_ci 2766e7c69efSopenharmony_ci 2776e7c69efSopenharmony_cifunction compile(){ 2786e7c69efSopenharmony_ci # echo "compile $1" 2796e7c69efSopenharmony_ci hap=${1////_} 2806e7c69efSopenharmony_ci project_path=${BASE_PATH}/projects/${name}/${1} 2816e7c69efSopenharmony_ci compile_result=${2} 2826e7c69efSopenharmony_ci compile_result_error=${3} 2836e7c69efSopenharmony_ci nosign_hap_result=${4} 2846e7c69efSopenharmony_ci compile_result_success=${5} 2856e7c69efSopenharmony_ci if [ ! -d "${project_path}" ]; then 2866e7c69efSopenharmony_ci echo "${project_path} 路径不存在" 2876e7c69efSopenharmony_ci return 2886e7c69efSopenharmony_ci fi 2896e7c69efSopenharmony_ci 2906e7c69efSopenharmony_ci if [ -e "${project_path}/local.properties" ]; then 2916e7c69efSopenharmony_ci rm ${project_path}"/local.properties" 2926e7c69efSopenharmony_ci fi 2936e7c69efSopenharmony_ci 2946e7c69efSopenharmony_ci # echo "sdk.dir="${arg_full_sdk_path} >> ${project_path}"/local.properties" 2>&1 2956e7c69efSopenharmony_ci cd ${project_path} 2966e7c69efSopenharmony_ci if [[ -e "${project_path}/package.json" ]]; then 2976e7c69efSopenharmony_ci sed -i 's/\"@ohos\/hypium\".*\.[0-9]*\"/\"@ohos\/hypium\": \"1.0.3\"/g' ./package.json 2986e7c69efSopenharmony_ci sed -i 's/\"@ohos\/hvigor-ohos-plugin\".*\.[0-9]*\"/\"@ohos\/hvigor-ohos-plugin\": \"1.3.1\"/g' ./package.json 2996e7c69efSopenharmony_ci sed -i 's/\"@ohos\/hvigor\".*\.[0-9]*\"/\"@ohos\/hvigor\": \"1.3.1\"/g' ./package.json 3006e7c69efSopenharmony_ci fi 3016e7c69efSopenharmony_ci module_list=() 3026e7c69efSopenharmony_ci module_name=() 3036e7c69efSopenharmony_ci out_module=() 3046e7c69efSopenharmony_ci bundle_name="" 3056e7c69efSopenharmony_ci while read line 3066e7c69efSopenharmony_ci do 3076e7c69efSopenharmony_ci if [[ ${line} =~ "srcPath" ]]; then 3086e7c69efSopenharmony_ci pa=${line%\"*} 3096e7c69efSopenharmony_ci pa=${pa##*\".} 3106e7c69efSopenharmony_ci module_list[${#module_list[*]}]=${project_path}${pa} 3116e7c69efSopenharmony_ci del_dir ${project_path}${pa}/node_modules 3126e7c69efSopenharmony_ci del_file ${project_path}${pa}/package-lock.json 3136e7c69efSopenharmony_ci del_dir ${project_path}${pa}/oh_modules 3146e7c69efSopenharmony_ci del_file ${project_path}${pa}/oh-package-lock.json5 3156e7c69efSopenharmony_ci module_name[${#module_name[*]}]=${pa} 3166e7c69efSopenharmony_ci if [ -d "${project_path}/AppScope" ]; then 3176e7c69efSopenharmony_ci cur_bundle_line=`cat ${project_path}/AppScope/app.json5 | grep "\"bundleName\""` 3186e7c69efSopenharmony_ci bundle_name=${cur_bundle_line%\"*} 3196e7c69efSopenharmony_ci bundle_name=${bundle_name##*\"} 3206e7c69efSopenharmony_ci # echo "bundleName : "${bundle_name} 3216e7c69efSopenharmony_ci is_entry=`cat ${project_path}${pa}/src/main/module.json5 | sed 's/ //g' | grep "\"type\":\"entry\""` 3226e7c69efSopenharmony_ci is_feature=`cat ${project_path}${pa}/src/main/module.json5 | sed 's/ //g' | grep "\"type\":\"feature\""` 3236e7c69efSopenharmony_ci if [[ "${is_entry}" != "" || "${is_feature}" != "" ]]; then 3246e7c69efSopenharmony_ci echo "hap输出module: "${project_path}${pa} >> ${compile_result_error}/${hap}".log" 2>&1 3256e7c69efSopenharmony_ci out_module[${#out_module[*]}]=${project_path}${pa} 3266e7c69efSopenharmony_ci fi 3276e7c69efSopenharmony_ci else 3286e7c69efSopenharmony_ci cur_bundle_line=`cat ${project_path}${pa}/src/main/config.json | grep "\"bundleName\""` 3296e7c69efSopenharmony_ci bundle_name=${cur_bundle_line%\"*} 3306e7c69efSopenharmony_ci bundle_name=${bundle_name##*\"} 3316e7c69efSopenharmony_ci # echo "bundleName : "${bundle_name} 3326e7c69efSopenharmony_ci is_entry=`cat ${project_path}${pa}/src/main/config.json | sed 's/ //g' | grep "\"moduleType\":\"entry\""` 3336e7c69efSopenharmony_ci is_feature=`cat ${project_path}${pa}/src/main/config.json | sed 's/ //g' | grep "\"moduleType\":\"feature\""` 3346e7c69efSopenharmony_ci if [[ "${is_entry}" != "" || "${is_feature}" != "" ]]; then 3356e7c69efSopenharmony_ci echo "hap输出module: "${project_path}${pa} >> ${compile_result_error}/${hap}".log" 2>&1 3366e7c69efSopenharmony_ci out_module[${#out_module[*]}]=${project_path}${pa} 3376e7c69efSopenharmony_ci fi 3386e7c69efSopenharmony_ci fi 3396e7c69efSopenharmony_ci fi 3406e7c69efSopenharmony_ci done < ${project_path}"/build-profile.json5" 3416e7c69efSopenharmony_ci 3426e7c69efSopenharmony_ci if [[ -e "${project_path}/oh-package.json5" ]]; then #如果是ohpm包管理方式 3436e7c69efSopenharmony_ci for module in ${module_list[@]} 3446e7c69efSopenharmony_ci do 3456e7c69efSopenharmony_ci del_module_name ${module##${project_path}} 3466e7c69efSopenharmony_ci if [ $? -eq 0 ]; then 3476e7c69efSopenharmony_ci for m_n in ${module_name[@]} 3486e7c69efSopenharmony_ci do 3496e7c69efSopenharmony_ci echo "查找 ${m_n} 是否是${module} 的依赖" >> ${compile_result_error}/${hap}".log" 2>&1 3506e7c69efSopenharmony_ci rr=$(cat ${module}"/oh-package.json5" | grep "${m_n}") 3516e7c69efSopenharmony_ci if [[ "${rr}" != "" ]]; then 3526e7c69efSopenharmony_ci echo "处理循环依赖 : "${m_n} >> ${compile_result_error}/${hap}".log" 2>&1 3536e7c69efSopenharmony_ci load_oh_dep ${m_n} 3546e7c69efSopenharmony_ci fi 3556e7c69efSopenharmony_ci 3566e7c69efSopenharmony_ci done 3576e7c69efSopenharmony_ci cd ${module} 3586e7c69efSopenharmony_ci echo ${module}" 执行ohpm install" >> ${compile_result_error}/${hap}".log" 2>&1 3596e7c69efSopenharmony_ci 3606e7c69efSopenharmony_ci if [[ -e "oh-package.json5" ]]; then 3616e7c69efSopenharmony_ci ohpm i >> ${compile_result_error}/${hap}".log" 2>&1 3626e7c69efSopenharmony_ci else 3636e7c69efSopenharmony_ci ohpm init >> ${compile_result_error}/${hap}".log" 2>&1 3646e7c69efSopenharmony_ci ohpm install >> ${compile_result_error}/${hap}".log" 2>&1 3656e7c69efSopenharmony_ci fi 3666e7c69efSopenharmony_ci 3676e7c69efSopenharmony_ci fi 3686e7c69efSopenharmony_ci done 3696e7c69efSopenharmony_ci else 3706e7c69efSopenharmony_ci for module in ${module_list[@]} 3716e7c69efSopenharmony_ci do 3726e7c69efSopenharmony_ci del_module_name ${module##${project_path}} 3736e7c69efSopenharmony_ci if [ $? -eq 0 ]; then 3746e7c69efSopenharmony_ci for m_n in ${module_name[@]} 3756e7c69efSopenharmony_ci do 3766e7c69efSopenharmony_ci echo "查找 ${m_n} 是否是${module} 的依赖" >> ${compile_result_error}/${hap}".log" 2>&1 3776e7c69efSopenharmony_ci rr=$(cat ${module}"/package.json" | grep "${m_n}") 3786e7c69efSopenharmony_ci if [[ "${rr}" != "" ]]; then 3796e7c69efSopenharmony_ci echo "处理循环依赖 : "${m_n} >> ${compile_result_error}/${hap}".log" 2>&1 3806e7c69efSopenharmony_ci load_dep ${m_n} 3816e7c69efSopenharmony_ci fi 3826e7c69efSopenharmony_ci 3836e7c69efSopenharmony_ci done 3846e7c69efSopenharmony_ci cd ${module} 3856e7c69efSopenharmony_ci echo ${module}" 执行npm install" >> ${compile_result_error}/${hap}".log" 2>&1 3866e7c69efSopenharmony_ci npm i >> ${compile_result_error}/${hap}".log" 2>&1 3876e7c69efSopenharmony_ci fi 3886e7c69efSopenharmony_ci done 3896e7c69efSopenharmony_ci 3906e7c69efSopenharmony_ci fi 3916e7c69efSopenharmony_ci 3926e7c69efSopenharmony_ci 3936e7c69efSopenharmony_ci cd ${project_path} 3946e7c69efSopenharmony_ci del_dir ${project_path}/node_modules 3956e7c69efSopenharmony_ci del_dir ${project_path}/oh_modules 3966e7c69efSopenharmony_ci del_file ${project_path}/package-lock.json 3976e7c69efSopenharmony_ci del_file ${project_path}/oh-package-lock.json5 3986e7c69efSopenharmony_ci echo ${project_path}" 执行npm install" >> ${compile_result_error}/${hap}".log" 2>&1 3996e7c69efSopenharmony_ci 4006e7c69efSopenharmony_ci if [[ -e "${project_path}/oh-package.json5" ]]; then 4016e7c69efSopenharmony_ci ohpm i >> ${compile_result_error}/${hap}".log" 2>&1 4026e7c69efSopenharmony_ci chmod +x hvigorw 4036e7c69efSopenharmony_ci ./hvigorw clean --no-daemon >> ${compile_result_error}/${hap}".log" 2>&1 4046e7c69efSopenharmony_ci else 4056e7c69efSopenharmony_ci npm install >> ${compile_result_error}/${hap}".log" 2>&1 4066e7c69efSopenharmony_ci node ./node_modules/@ohos/hvigor/bin/hvigor.js clean --no-daemon >> ${compile_result_error}/${hap}".log" 2>&1 4076e7c69efSopenharmony_ci fi 4086e7c69efSopenharmony_ci 4096e7c69efSopenharmony_ci 4106e7c69efSopenharmony_ci 4116e7c69efSopenharmony_ci rm -rf ${project_path}/sign_tool 4126e7c69efSopenharmony_ci cp -r ${BASE_PATH}/tool/sign_tool ${project_path} 4136e7c69efSopenharmony_ci 4146e7c69efSopenharmony_ci cd ${project_path}/sign_tool 4156e7c69efSopenharmony_ci if [[ $(echo ${basic_list[@]} | grep "${hap//_//}") != "" ]]; then 4166e7c69efSopenharmony_ci echo "${hap} 使用basic签名" >> ${compile_result_error}/${hap}".log" 2>&1 4176e7c69efSopenharmony_ci sed -i "s/\"normal\"/\"system_basic\"/g" ./UnsgnedReleasedProfileTemplate.json >> ${compile_result_error}/${hap}".log" 2>&1 4186e7c69efSopenharmony_ci elif [[ $(echo ${core_list[@]} | grep "${hap//_//}") != "" ]]; then 4196e7c69efSopenharmony_ci echo "${hap} 使用core签名" >> ${compile_result_error}/${hap}".log" 2>&1 4206e7c69efSopenharmony_ci sed -i "s/\"normal\"/\"system_core\"/g" ./UnsgnedReleasedProfileTemplate.json >> ${compile_result_error}/${hap}".log" 2>&1 4216e7c69efSopenharmony_ci fi 4226e7c69efSopenharmony_ci if [[ $(echo ${system_app_list[@]} | grep "${hap//_//}") != "" ]]; then 4236e7c69efSopenharmony_ci echo "${hap} 系统应用" >> ${compile_result_error}/${hap}".log" 2>&1 4246e7c69efSopenharmony_ci sed -i "s/\"hos_normal_app\"/\"hos_system_app\"/g" ./UnsgnedReleasedProfileTemplate.json >> ${compile_result_error}/${hap}".log" 2>&1 4256e7c69efSopenharmony_ci fi 4266e7c69efSopenharmony_ci if [ "${bundle_name}" != "" ]; then 4276e7c69efSopenharmony_ci echo "bundleName = ${bundle_name}" >> ${compile_result_error}/${hap}".log" 2>&1 4286e7c69efSopenharmony_ci sed -i "s/\"com.OpenHarmony.app.test\"/\"${bundle_name}\"/g" ./UnsgnedReleasedProfileTemplate.json >> ${compile_result_error}/${hap}".log" 2>&1 4296e7c69efSopenharmony_ci fi 4306e7c69efSopenharmony_ci 4316e7c69efSopenharmony_ci 4326e7c69efSopenharmony_ci sign_hap_num=0 4336e7c69efSopenharmony_ci for module in ${out_module[@]} 4346e7c69efSopenharmony_ci do 4356e7c69efSopenharmony_ci cd ${project_path} 4366e7c69efSopenharmony_ci cur_out_module_name=${module##*/} 4376e7c69efSopenharmony_ci if [[ -e "${project_path}/oh-package.json5" ]]; then 4386e7c69efSopenharmony_ci chmod +x hvigorw 4396e7c69efSopenharmony_ci ./hvigorw --mode module -p module=${cur_out_module_name} assembleHap --no-daemon >> ${compile_result_error}/${hap}".log" 2>&1 4406e7c69efSopenharmony_ci if [[ -d ${module}"/src/ohosTest" ]]; then 4416e7c69efSopenharmony_ci ./hvigorw --mode module -p module=${cur_out_module_name}@ohosTest assembleHap --no-daemon >> ${compile_result_error}/${hap}".log" 2>&1 4426e7c69efSopenharmony_ci fi 4436e7c69efSopenharmony_ci else 4446e7c69efSopenharmony_ci node ./node_modules/@ohos/hvigor/bin/hvigor.js --mode module -p module=${cur_out_module_name} assembleHap --no-daemon>> ${compile_result_error}/${hap}".log" 2>&1 4456e7c69efSopenharmony_ci if [[ -d ${module}"/src/ohosTest" ]]; then 4466e7c69efSopenharmony_ci node ./node_modules/@ohos/hvigor/bin/hvigor.js --mode module -p module=${cur_out_module_name}@ohosTest assembleHap --no-daemon>> ${compile_result_error}/${hap}".log" 2>&1 4476e7c69efSopenharmony_ci fi 4486e7c69efSopenharmony_ci fi 4496e7c69efSopenharmony_ci 4506e7c69efSopenharmony_ci is_sign=false 4516e7c69efSopenharmony_ci echo "module = ${module} , cur_out_module_name=${cur_out_module_name}" >> ${compile_result_error}/${hap}".log" 2>&1 4526e7c69efSopenharmony_ci if [ ! -d ${module}/build/default/outputs/default/ -o ! -d ${module}/build/default/outputs/ohosTest/ -a -d ${module}"/src/ohosTest" ]; then 4536e7c69efSopenharmony_ci echo "module = ${module}, assembleHap error !!!" >> ${compile_result_error}/${hap}".log" 2>&1 4546e7c69efSopenharmony_ci continue 4556e7c69efSopenharmony_ci fi 4566e7c69efSopenharmony_ci sign_hap_path="" 4576e7c69efSopenharmony_ci test_sign_hap_path="" 4586e7c69efSopenharmony_ci nosign_hap_path="" 4596e7c69efSopenharmony_ci test_nosign_hap_path="" 4606e7c69efSopenharmony_ci for out_file in `ls ${module}/build/default/outputs/default/` 4616e7c69efSopenharmony_ci do 4626e7c69efSopenharmony_ci if [[ "${out_file}" =~ "-unsigned.hap" ]]; then 4636e7c69efSopenharmony_ci echo "发现unsigned包 : "${out_file}",开始使用签名工具签名" >> ${compile_result_error}/${hap}".log" 2>&1 4646e7c69efSopenharmony_ci nosign_hap_path=${module}/build/default/outputs/default/${out_file} 4656e7c69efSopenharmony_ci sign_hap_path=${module}/build/default/outputs/default/${out_file/unsigned/signed} 4666e7c69efSopenharmony_ci cd ${project_path}/sign_tool 4676e7c69efSopenharmony_ci java -jar ${BASE_PATH}/tool/hap-sign-tool.jar sign-profile -keyAlias "openharmony application profile release" -signAlg "SHA256withECDSA" -mode "localSign" -profileCertFile "OpenHarmonyProfileRelease.pem" -inFile "UnsgnedReleasedProfileTemplate.json" -keystoreFile "OpenHarmony.p12" -outFile "openharmony_sx.p7b" -keyPwd "123456" -keystorePwd "123456" >> ${compile_result_error}/${hap}".log" 2>&1 4686e7c69efSopenharmony_ci java -jar ${BASE_PATH}/tool/hap-sign-tool.jar sign-app -keyAlias "openharmony application release" -signAlg "SHA256withECDSA" -mode "localSign" -appCertFile "OpenHarmonyApplication.pem" -profileFile "openharmony_sx.p7b" -inFile "${nosign_hap_path}" -keystoreFile "OpenHarmony.p12" -outFile "${sign_hap_path}" -keyPwd "123456" -keystorePwd "123456" >> ${compile_result_error}/${hap}".log" 2>&1 4696e7c69efSopenharmony_ci fi 4706e7c69efSopenharmony_ci done 4716e7c69efSopenharmony_ci 4726e7c69efSopenharmony_ci if [[ -d ${module}"/src/ohosTest" ]]; then 4736e7c69efSopenharmony_ci for out_file in `ls ${module}/build/default/outputs/ohosTest/` 4746e7c69efSopenharmony_ci do 4756e7c69efSopenharmony_ci if [[ "${out_file}" =~ "-unsigned.hap" ]]; then 4766e7c69efSopenharmony_ci echo "发现unsigned包 : "${out_file}",开始使用签名工具签名" >> ${compile_result_error}/${hap}".log" 2>&1 4776e7c69efSopenharmony_ci test_nosign_hap_path=${module}/build/default/outputs/ohosTest/${out_file} 4786e7c69efSopenharmony_ci test_sign_hap_path=${module}/build/default/outputs/ohosTest/${out_file/unsigned/signed} 4796e7c69efSopenharmony_ci cd ${project_path}/sign_tool 4806e7c69efSopenharmony_ci java -jar ${BASE_PATH}/tool/hap-sign-tool.jar sign-profile -keyAlias "openharmony application profile release" -signAlg "SHA256withECDSA" -mode "localSign" -profileCertFile "OpenHarmonyProfileRelease.pem" -inFile "UnsgnedReleasedProfileTemplate.json" -keystoreFile "OpenHarmony.p12" -outFile "openharmony_sx.p7b" -keyPwd "123456" -keystorePwd "123456" >> ${compile_result_error}/${hap}".log" 2>&1 4816e7c69efSopenharmony_ci java -jar ${BASE_PATH}/tool/hap-sign-tool.jar sign-app -keyAlias "openharmony application release" -signAlg "SHA256withECDSA" -mode "localSign" -appCertFile "OpenHarmonyApplication.pem" -profileFile "openharmony_sx.p7b" -inFile "${test_nosign_hap_path}" -keystoreFile "OpenHarmony.p12" -outFile "${test_sign_hap_path}" -keyPwd "123456" -keystorePwd "123456" >> ${compile_result_error}/${hap}".log" 2>&1 4826e7c69efSopenharmony_ci fi 4836e7c69efSopenharmony_ci done 4846e7c69efSopenharmony_ci fi 4856e7c69efSopenharmony_ci 4866e7c69efSopenharmony_ci if [[ ${sign_hap_path} != "" && -f ${sign_hap_path} && ( -f ${test_sign_hap_path} || ! -d ${module}"/src/ohosTest") ]]; then 4876e7c69efSopenharmony_ci cp ${sign_hap_path} ${compile_result}/${hap}_${cur_out_module_name}_signed.hap 4886e7c69efSopenharmony_ci cp ${nosign_hap_path} ${nosign_hap_result}/${hap}_${cur_out_module_name}_signed.hap 4896e7c69efSopenharmony_ci 4906e7c69efSopenharmony_ci if [[ -d ${module}"/src/ohosTest" ]]; then 4916e7c69efSopenharmony_ci cp ${test_sign_hap_path} ${compile_result}/${hap}_${cur_out_module_name}_ohosTest_signed.hap 4926e7c69efSopenharmony_ci cp ${test_nosign_hap_path} ${nosign_hap_result}/${hap}_${cur_out_module_name}_ohosTest_signed.hap 4936e7c69efSopenharmony_ci fi 4946e7c69efSopenharmony_ci sign_hap_num=$(expr ${sign_hap_num} + 1) 4956e7c69efSopenharmony_ci echo "${module} assembleHap success !!!" >> ${compile_result_error}/${hap}".log" 2>&1 4966e7c69efSopenharmony_ci else 4976e7c69efSopenharmony_ci echo "${module} assembleHap error !!!" >> ${compile_result_error}/${hap}".log" 2>&1 4986e7c69efSopenharmony_ci fi 4996e7c69efSopenharmony_ci done 5006e7c69efSopenharmony_ci if [[ ${#out_module[@]} == ${sign_hap_num} ]]; then 5016e7c69efSopenharmony_ci #rm ${compile_result_error}/${hap}".log" 5026e7c69efSopenharmony_ci mv ${compile_result_error}/${hap}.log ${compile_result_success}/${hap}.log 5036e7c69efSopenharmony_ci echo "success compile ${hap} !!! " 5046e7c69efSopenharmony_ci else 5056e7c69efSopenharmony_ci echo "error compile ${hap} QwQ ,log at ${compile_result_error}/${hap}.log" 5066e7c69efSopenharmony_ci fi 5076e7c69efSopenharmony_ci} 5086e7c69efSopenharmony_ci 5096e7c69efSopenharmony_ci 5106e7c69efSopenharmony_cifunction compile_project(){ 5116e7c69efSopenharmony_ci echo "use public sdk compile..." 5126e7c69efSopenharmony_ci project_path=${1} 5136e7c69efSopenharmony_ci project_name=${2} 5146e7c69efSopenharmony_ci COMPILE_RESULT=${BASE_PATH}/out/${project_name}/public-sdk/hap-out-with-nosigned 5156e7c69efSopenharmony_ci COMPILE_RESULT_ERROR=${BASE_PATH}/out/${project_name}/public-sdk/compile-error-log 5166e7c69efSopenharmony_ci COMPILE_RESULT_SUCCESS=${BASE_PATH}/out/${project_name}/public-sdk/compile-success-log 5176e7c69efSopenharmony_ci SIGN_RESULT=${BASE_PATH}/out/${project_name}/public-sdk/hap-out-with-signed 5186e7c69efSopenharmony_ci 5196e7c69efSopenharmony_ci clear_dir $COMPILE_RESULT 5206e7c69efSopenharmony_ci clear_dir $COMPILE_RESULT_ERROR 5216e7c69efSopenharmony_ci clear_dir $COMPILE_RESULT_SUCCESS 5226e7c69efSopenharmony_ci clear_dir $SIGN_RESULT 5236e7c69efSopenharmony_ci 5246e7c69efSopenharmony_ci 5256e7c69efSopenharmony_ci export OHOS_SDK_HOME=${arg_sdk_path} 5266e7c69efSopenharmony_ci export OHOS_BASE_SDK_HOME=${arg_sdk_path} 5276e7c69efSopenharmony_ci echo "OHOS_SDK_HOME="${OHOS_SDK_HOME} 5286e7c69efSopenharmony_ci echo "OHOS_BASE_SDK_HOME="${OHOS_BASE_SDK_HOME} 5296e7c69efSopenharmony_ci 5306e7c69efSopenharmony_ci EOF=0 5316e7c69efSopenharmony_ci curr=0 5326e7c69efSopenharmony_ci while [ $EOF -ne 1 ]; do 5336e7c69efSopenharmony_ci for ((i=1; i<=$TIME; i++)); do 5346e7c69efSopenharmony_ci if [ ${curr} -eq ${#public_list[@]} ]; then 5356e7c69efSopenharmony_ci EOF=1 5366e7c69efSopenharmony_ci break 5376e7c69efSopenharmony_ci fi 5386e7c69efSopenharmony_ci compile ${public_list[$curr]} ${SIGN_RESULT} ${COMPILE_RESULT_ERROR} ${COMPILE_RESULT} ${COMPILE_RESULT_SUCCESS} & 5396e7c69efSopenharmony_ci curr=$((curr+1)) 5406e7c69efSopenharmony_ci done 5416e7c69efSopenharmony_ci wait 5426e7c69efSopenharmony_ci done 5436e7c69efSopenharmony_ci} 5446e7c69efSopenharmony_ci 5456e7c69efSopenharmony_cifunction compile_project_full(){ 5466e7c69efSopenharmony_ci echo "use full sdk compile..." 5476e7c69efSopenharmony_ci project_path=${1} 5486e7c69efSopenharmony_ci project_name=${2} 5496e7c69efSopenharmony_ci COMPILE_RESULT=${BASE_PATH}/out/${project_name}/full-sdk/hap-out-with-nosigned 5506e7c69efSopenharmony_ci COMPILE_RESULT_ERROR=${BASE_PATH}/out/${project_name}/full-sdk/compile-error-log 5516e7c69efSopenharmony_ci COMPILE_RESULT_SUCCESS=${BASE_PATH}/out/${project_name}/full-sdk/compile-success-log 5526e7c69efSopenharmony_ci SIGN_RESULT=${BASE_PATH}/out/${project_name}/full-sdk/hap-out-with-signed 5536e7c69efSopenharmony_ci 5546e7c69efSopenharmony_ci clear_dir $COMPILE_RESULT 5556e7c69efSopenharmony_ci clear_dir $COMPILE_RESULT_ERROR 5566e7c69efSopenharmony_ci clear_dir $COMPILE_RESULT_SUCCESS 5576e7c69efSopenharmony_ci clear_dir $SIGN_RESULT 5586e7c69efSopenharmony_ci 5596e7c69efSopenharmony_ci export OHOS_SDK_HOME=${arg_full_sdk_path} 5606e7c69efSopenharmony_ci export OHOS_BASE_SDK_HOME=${arg_full_sdk_path} 5616e7c69efSopenharmony_ci echo "OHOS_SDK_HOME="${OHOS_SDK_HOME} 5626e7c69efSopenharmony_ci echo "OHOS_BASE_SDK_HOME="${OHOS_BASE_SDK_HOME} 5636e7c69efSopenharmony_ci 5646e7c69efSopenharmony_ci EOF=0 5656e7c69efSopenharmony_ci curr=0 5666e7c69efSopenharmony_ci while [ $EOF -ne 1 ]; do 5676e7c69efSopenharmony_ci for ((i=1; i<=$TIME; i++)); do 5686e7c69efSopenharmony_ci if [ ${curr} -eq ${#full_list[@]} ]; then 5696e7c69efSopenharmony_ci EOF=1 5706e7c69efSopenharmony_ci break 5716e7c69efSopenharmony_ci fi 5726e7c69efSopenharmony_ci compile ${full_list[$curr]} ${SIGN_RESULT} ${COMPILE_RESULT_ERROR} ${COMPILE_RESULT} ${COMPILE_RESULT_SUCCESS} & 5736e7c69efSopenharmony_ci curr=$((curr+1)) 5746e7c69efSopenharmony_ci done 5756e7c69efSopenharmony_ci wait 5766e7c69efSopenharmony_ci done 5776e7c69efSopenharmony_ci} 5786e7c69efSopenharmony_ci 5796e7c69efSopenharmony_cifunction load(){ 5806e7c69efSopenharmony_ci project_url=${1} 5816e7c69efSopenharmony_ci project_branch=${2} 5826e7c69efSopenharmony_ci project_name=${3} 5836e7c69efSopenharmony_ci # if test -d ${BASE_PATH}/projects/${project_name} 5846e7c69efSopenharmony_ci # then 5856e7c69efSopenharmony_ci # echo "${project_name} exists,ready for update..." 5866e7c69efSopenharmony_ci # cd ${BASE_PATH}/projects/${project_name} 5876e7c69efSopenharmony_ci # git reset --hard origin/${project_branch} 5886e7c69efSopenharmony_ci # git checkout -b ${project_branch} origin/${project_branch} 5896e7c69efSopenharmony_ci # git checkout ${project_branch} 5906e7c69efSopenharmony_ci # git lfs fetch origin ${project_branch} 5916e7c69efSopenharmony_ci # git pull 5926e7c69efSopenharmony_ci # else 5936e7c69efSopenharmony_ci # echo "${project_name} dose not exist,ready to download..." 5946e7c69efSopenharmony_ci # if [ ! -d ${BASE_PATH}/projects ]; then 5956e7c69efSopenharmony_ci # mkdir -p ${BASE_PATH}/projects 5966e7c69efSopenharmony_ci # fi 5976e7c69efSopenharmony_ci # cd ${BASE_PATH}/projects 5986e7c69efSopenharmony_ci # git lfs clone -b ${project_branch} ${project_url} ${project_name} 5996e7c69efSopenharmony_ci # git checkout -b ${project_branch} origin/${project_branch} 6006e7c69efSopenharmony_ci # fi 6016e7c69efSopenharmony_ci if [ -d "${BASE_PATH}/projects/${project_name}/${arg_compile_dir}" ]; then 6026e7c69efSopenharmony_ci read_project ${BASE_PATH}/projects/${project_name}/${arg_compile_dir} 6036e7c69efSopenharmony_ci exclude_full_project 6046e7c69efSopenharmony_ci compile_project ${BASE_PATH}/projects/${project_name} ${project_name} 6056e7c69efSopenharmony_ci compile_project_full ${BASE_PATH}/projects/${project_name} ${project_name} 6066e7c69efSopenharmony_ci fi 6076e7c69efSopenharmony_ci} 6086e7c69efSopenharmony_ci 6096e7c69efSopenharmony_ci 6106e7c69efSopenharmony_ciwhile read line 6116e7c69efSopenharmony_cido 6126e7c69efSopenharmony_ci if [[ ${line} == ${tag_url}* ]]; then 6136e7c69efSopenharmony_ci url=${line##*${tag_url}} 6146e7c69efSopenharmony_ci elif [[ ${line} == ${tag_branch}* ]]; then 6156e7c69efSopenharmony_ci branch=${line##*${tag_branch}} 6166e7c69efSopenharmony_ci elif [[ ${line} == ${tag_name}* ]]; then 6176e7c69efSopenharmony_ci name=${line##*${tag_name}} 6186e7c69efSopenharmony_ci elif [[ ${line} == ${tag_full_list}* ]]; then 6196e7c69efSopenharmony_ci temp_string=${line##*${tag_full_list}} 6206e7c69efSopenharmony_ci full_list=(${temp_string//;/ }) 6216e7c69efSopenharmony_ci elif [[ ${line} == ${tag_basic_list}* ]]; then 6226e7c69efSopenharmony_ci temp_string=${line##*${tag_basic_list}} 6236e7c69efSopenharmony_ci basic_list=(${temp_string//;/ }) 6246e7c69efSopenharmony_ci elif [[ ${line} == ${tag_core_list}* ]]; then 6256e7c69efSopenharmony_ci temp_string=${line##*${tag_core_list}} 6266e7c69efSopenharmony_ci core_list=(${temp_string//;/ }) 6276e7c69efSopenharmony_ci elif [[ ${line} == ${tag_system_app_list}* ]]; then 6286e7c69efSopenharmony_ci temp_string=${line##*${tag_system_app_list}} 6296e7c69efSopenharmony_ci system_app_list=(${temp_string//;/ }) 6306e7c69efSopenharmony_ci fi 6316e7c69efSopenharmony_cidone < ${arg_p} 6326e7c69efSopenharmony_ci 6336e7c69efSopenharmony_ciload ${url} ${branch} ${name} 6346e7c69efSopenharmony_ci 6356e7c69efSopenharmony_ciendTime=`date +%Y%m%d-%H:%M:%S` 6366e7c69efSopenharmony_ciendTime_s=`date +%s` 6376e7c69efSopenharmony_cisumTime=$[ $endTime_s - $startTime_s ] 6386e7c69efSopenharmony_ci 6396e7c69efSopenharmony_ci# echo "$startTime ---> $endTime" "耗时:$sumTime seconds" 6406e7c69efSopenharmony_ci# echo "| public-sdk--|-------------|-------------|-------------|-------------|-------------" 6416e7c69efSopenharmony_ci# echo "| 仓库 | 项目数量 | 成功数量 | 失败数量 | Hap数量 | 签名成功 " 6426e7c69efSopenharmony_ci# echo "|-------------|-------------|-------------|-------------|-------------" 6436e7c69efSopenharmony_ci# echo "| ${name} | ${#public_list[@]} | $(ls -l ${BASE_PATH}/out/${name}/public-sdk/compile-success-log|grep "^-"|wc -l) | $(ls -l ${BASE_PATH}/out/${name}/public-sdk/compile-error-log|grep "^-"|wc -l) | "`expr $(ls -l ${BASE_PATH}/out/${name}/public-sdk/hap-out-with-nosigned|grep "^-"|wc -l) / 2`" | "`expr $(ls -l ${BASE_PATH}/out/${name}/public-sdk/hap-out-with-signed|grep "^-"|wc -l) / 2` 6446e7c69efSopenharmony_ci# if (( $(ls -l ${BASE_PATH}/out/${name}/public-sdk/compile-error-log|grep "^-"|wc -l) > 0 )); then 6456e7c69efSopenharmony_ci# echo "| 失败项目列表|-------------|-------------|-------------|-------------|-------------" 6466e7c69efSopenharmony_ci# for z in `ls ${BASE_PATH}/out/${name}/public-sdk/compile-error-log` 6476e7c69efSopenharmony_ci# do 6486e7c69efSopenharmony_ci# z=${z//_//} 6496e7c69efSopenharmony_ci# z=${z%.log} 6506e7c69efSopenharmony_ci# echo "| "${z}" |" 6516e7c69efSopenharmony_ci# done 6526e7c69efSopenharmony_ci# fi 6536e7c69efSopenharmony_ci# echo "| 失败项目日志汇总地址|-------------|-------------|-------------|-------------------" 6546e7c69efSopenharmony_ci# echo "| ${BASE_PATH}/out/${name}/public-sdk/compile-error-log" 6556e7c69efSopenharmony_ci# echo "| full-sdk----|-------------|-------------|-------------|-------------|-------------" 6566e7c69efSopenharmony_ci# echo "| 仓库 | 项目数量 | 成功数量 | 失败数量 | Hap数量 | 签名成功 " 6576e7c69efSopenharmony_ci# echo "|-------------|-------------|-------------|-------------|-------------|-------------" 6586e7c69efSopenharmony_ci# echo "| ${name} | ${#full_list[@]} | $(ls -l ${BASE_PATH}/out/${name}/full-sdk/compile-success-log|grep "^-"|wc -l) | $(ls -l ${BASE_PATH}/out/${name}/full-sdk/compile-error-log|grep "^-"|wc -l) | "`expr $(ls -l ${BASE_PATH}/out/${name}/full-sdk/hap-out-with-nosigned|grep "^-"|wc -l) / 2`" | "`expr $(ls -l ${BASE_PATH}/out/${name}/full-sdk/hap-out-with-signed|grep "^-"|wc -l) / 2` 6596e7c69efSopenharmony_ci# if (( $(ls -l ${BASE_PATH}/out/${name}/full-sdk/compile-error-log|grep "^-"|wc -l) > 0 )); then 6606e7c69efSopenharmony_ci# echo "| 失败项目列表|-------------|-------------|-------------|-------------|-------------" 6616e7c69efSopenharmony_ci# for z in `ls ${BASE_PATH}/out/${name}/full-sdk/compile-error-log` 6626e7c69efSopenharmony_ci# do 6636e7c69efSopenharmony_ci# z=${z//_//} 6646e7c69efSopenharmony_ci# z=${z%.log} 6656e7c69efSopenharmony_ci# echo "| "${z}" |" 6666e7c69efSopenharmony_ci# done 6676e7c69efSopenharmony_ci# fi 6686e7c69efSopenharmony_ci# echo "| 失败项目日志汇总地址|-------------|-------------|-------------------" 6696e7c69efSopenharmony_ci# echo "| ${BASE_PATH}/out/${name}/full-sdk/compile-error-log" 6706e7c69efSopenharmony_ci# echo "|-------------|-------------|-------------|-------------|-------------" 6716e7c69efSopenharmony_ci# echo "| 成功项目日志汇总地址|-------------|-------------|-------------------" 6726e7c69efSopenharmony_ci# echo "| ${BASE_PATH}/out/${name}/full-sdk/compile-success-log" 6736e7c69efSopenharmony_ci# echo "| 不含测试用例项目|-------------|-------------|-------------------" 6746e7c69efSopenharmony_ci# for simple in ${simple_list[@]};do 6756e7c69efSopenharmony_ci# echo "| "${simple}" |" 6766e7c69efSopenharmony_ci# done 6776e7c69efSopenharmony_ci# echo "|-------------|-------------|-------------|-------------|-------------" 6786e7c69efSopenharmony_ci# echo "compile completed..." 6796e7c69efSopenharmony_ciif [[ $(ls -l ${BASE_PATH}/out/${name}/public-sdk/compile-error-log|grep "^-"|wc -l) -gt 0 ]] || [[ $(ls -l ${BASE_PATH}/out/${name}/full-sdk/compile-error-log|grep "^-"|wc -l) -gt 0 ]];then 6806e7c69efSopenharmony_ci echo "hap_build fail" 6816e7c69efSopenharmony_cielse 6826e7c69efSopenharmony_ci echo "hap_build success" 6836e7c69efSopenharmony_cifi