加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ci_build.sh 3.25 KB
一键复制 编辑 原始数据 按行查看 历史
糖宝儿 提交于 2024-05-07 21:01 . 精准编译build脚本适配
#!/bin/bash
# Copyright (C) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -e
parse_target_subsystem()
{
XTS_HOME=$(dirname $(cd $(dirname $0); pwd))
BASE_HOME=${XTS_HOME}/../..
target_subsystem_config=${XTS_HOME}/tools/config/precise_compilation.json
xts_enter_config=${BASE_HOME}/.repo/manifests/matrix_product.csv
xts_targets=""
repositorys=$1
match_status=true
repo_lst=($(echo $repositorys | tr "," "\n"))
row=dayu200_xts
row_number=$(awk -F',' -v target="$row" 'NR==1{for(i=1;i<=NF;i++){if($i==target){print i;exit}}}' "$xts_enter_config")
for repo in "${repo_lst[@]}"
do
echo $repo
# 是否配置xts门禁,若无,跳过
line_number=$(awk -F',' -v target="$repo" '$1 == target {print NR}' "$xts_enter_config")
content=$(awk -F',' -v c=$row_number -v r=$line_number 'NR==r {print $c}' "$xts_enter_config")
echo $content
if [ ! "$content" = "Y" ]||[ -z "$content" ]; then
continue
fi
# 仓名映射target名
jq_cmd="cat $target_subsystem_config | jq -r '.[] | select( .name == \"${repo}\") | .buildTarget'"
xts_target=`eval $jq_cmd`
if [[ -z "${xts_target}" ]];then
match_status=false
fi
# precise_compilation.json匹配到的才添加,数组中不存在才添加(去重)
if [[ -n "${xts_target}" && !("$xts_targets" =~ "$xts_target") ]];then
xts_targets+="$xts_target,"
fi
done
# 去掉末尾,
xts_targets=$(echo "$xts_targets" | sed 's/,$//')
echo "xts_targets: $xts_targets"
}
CACHE_TYPE=""
parse_args()
{
while [ -n "$1" ]
do
var="$1"
OPTIONS=${var%%=*}
PARAM=${var#*=}
if [[ "$OPTIONS" == "cache_type" && "$PARAM" != "$OPTIONS" ]]; then
CACHE_TYPE="$PARAM"
fi
shift
done
}
pr_list=$1
shift
remaining_params=$@
do_make()
{
cd $BASE_HOME
if [[ ${match_status} == false || "$xts_targets" =~ "xts_acts" ]];then
if [ -z "$CACHE_TYPE" ]; then
./test/xts/acts/build.sh product_name=rk3568 system_size=standard $remaining_params
else
./test/xts/acts/build.sh product_name=rk3568 system_size=standard $remaining_params cache_type=$CACHE_TYPE
fi
else
if [ -z "$CACHE_TYPE" ]; then
./test/xts/acts/build.sh product_name=rk3568 system_size=standard suite=${xts_targets} $remaining_params
else
./test/xts/acts/build.sh product_name=rk3568 system_size=standard suite=${xts_targets} $remaining_params cache_type=$CACHE_TYPE
fi
fi
}
echo $@
parse_target_subsystem $pr_list
if [ $# -eq 0 ];then
echo "no args; pass cache deal"
else
parse_args $@
fi
do_make
exit 0
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化