shell 脚本执行dailybuild

本文介绍了一个用于 G3 ASIC Yocto 项目的日常构建 Bash 脚本。该脚本实现了从源码克隆、构建到邮件通知的一系列自动化流程,并记录了构建过程的日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash

DestMailsList=("xxx@xxx.com");
BUILD_DIR=g3_asic_yocto
LOG_FILE="g3_asic_dailybuild.txt"
TAIL_FILE="./tail.txt"
#CurTime=$(date "+%Y%m%d")
DayTimeTag=$(date "+%Y%m%d")
MonTimeTag=$(date "+%Y%m")
YestTag=$(date -d '3 days ago' +%Y%m%d)
WORK_DIR=/space/pchen/g3_yocto_build/

cd $WORK_DIR
CurDIR=$(pwd)

if [ -d $MonTimeTag ]; then
    echo "Have created dir $MonTimeTag"
else
    mkdir $MonTimeTag
fi
mkdir $MonTimeTag/$DayTimeTag

#Gitclone Source Codes of Titan.
if [ -d $BUILD_DIR-$YestTag ]; then
    echo "The Source Codes had git cloned before should be removed first."
    rm $BUILD_DIR-$YestTag -rf
else
    echo "The First time to Git clone the Source Code and build. "
fi

git clone -b g3-krogoth-master gitolite@cs-local-gitmirror:sw/platforms/cs-unified/distro/yocto $BUILD_DIR-$DayTimeTag
cd $BUILD_DIR-$DayTimeTag

git clone -b g3-krogoth-master gitolite@cs-local-gitmirror:sw/platforms/cs-unified/distro/openembedded/meta-openembedded
git clone -b g3-krogoth-master gitolite@cs-local-gitmirror:sw/platforms/cs-unified/distro/meta-oe-yocto-cortina
git clone -b g3-krogoth-master gitolite@cs-local-gitmirror:sw/platforms/cs-unified/distro/meta-ca-bsp
export TEMPLATECONF=meta-ca-bsp/conf/g3-eng/
#pwd
#ls
source ./oe-init-build-env

#Make build
bitbake basic-image > $CurDIR/$LOG_FILE

#Copy the output image
cd $CurDIR
#echo $CurDIR
#echo $CurTime
#if [ -d $CurTime ]; then
#    echo "remove the first."
#    rm $CurTime -rf
#    mkdir $CurTime
#else
#    echo "12233"
#    mkdir $CurTime
#fi

cp $BUILD_DIR-$DayTimeTag/build/tmp/deploy/images/g3-eng/Image $MonTimeTag/$DayTimeTag
cp $BUILD_DIR-$DayTimeTag/build/tmp/deploy/images/g3-eng/Image-ca7774-engboard.dtb $MonTimeTag/$DayTimeTag
cp $BUILD_DIR-$DayTimeTag/build/tmp/deploy/images/g3-eng/basic-image-g3-eng.cpio.xz  $MonTimeTag/$DayTimeTag
cp $BUILD_DIR-$DayTimeTag/build/tmp/deploy/images/g3-eng/u-boot.bin $MonTimeTag/$DayTimeTag
cp $LOG_FILE $MonTimeTag/$DayTimeTag/$DayTimeTag-$LOG_FILE

tail -10 $LOG_FILE > $TAIL_FILE
grep -I "Error" $TAIL_FILE
if [ $? -eq 0 ]; then
    echo "The daily compile building had failed. --- Please refer the attchment log file!" > $TAIL_FILE
else
    echo "The daily compile building had PASSED successful. --- OK!" > $TAIL_FILE
fi
echo "#######################################################" >> $TAIL_FILE
echo "" >> $TAIL_FILE
echo "... ... ..." >> $TAIL_FILE
echo "" >> $TAIL_FILE
tail -20 $LOG_FILE >> $TAIL_FILE

#Restart the Mail Services
#service postfix restart
#service sendmail restart

#Send Emails
for m in ${DestMailsList[@]}; do
   echo $m
   cat $TAIL_FILE | mutt -s "G3 ASIC YOCTO Daily Build - "$DayTimeTag $m -a $LOG_FILE
done
#End

 

+ Cherry_Pick + echo '<<<---------------------------Cherry_Pick--------------------------------->>>' <<<---------------------------Cherry_Pick--------------------------------->>> + for change_list_type in '${AndroidVersion_path}' + '[' system == vendor ']' + '[' system == system ']' + change_list= + cd /work/jenkins_dailybuild_slave/workspace/UMS9230_15.0_latte_upgrade_master_PatchBuild/system + '[' ']' + for change_list_type in '${AndroidVersion_path}' + '[' vendor == vendor ']' + change_list=344112,344113,344117 + cd /work/jenkins_dailybuild_slave/workspace/UMS9230_15.0_latte_upgrade_master_PatchBuild/vendor + '[' 344112,344113,344117 ']' ++ echo 344112,344113,344117 ++ sed 's/,/ /g' + for change in '$(echo ${change_list}| sed s'\''/,/ /g'\'')' + echo '*********************************************************************** 处理提交344112 *******************************************************************' *********************************************************************** 处理提交344112 ******************************************************************* + gerrit_query='ssh -p 29418 gerrit.realme.odm.scm.adc.com gerrit query --format=TEXT --current-patch-set change:344112' ++ ssh -p 29418 gerrit.realme.odm.scm.adc.com gerrit query --format=TEXT --current-patch-set change:344112 ++ grep project: ++ awk -F ' ' '{print $2}' + project=bsp/release/IDH ++ ssh -p 29418 gerrit.realme.odm.scm.adc.com gerrit query --format=TEXT --current-patch-set change:344112 ++ awk '/branch/{print $2}' + change_branch=realme/v/sprd/vendor/master_20241119 ++ repo list bsp/release/IDH ++ awk -F ' :' '{print $1}' ++ wc -l
最新发布
05-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值