ems-build.sh

#!/bin/bash
set -e -x

export LANG=POSIX
#echo jenkins env
echo  "build url:"               $BUILD_URL
echo  "job url:"                 $JOB_URL
echo  " project git url:"      $GIT_URL
echo  " git commint:"              $GIT_COMMIT
echo  " git branch: "          $GIT_BRANCH
echo  " build number ":         $BUILD_NUMBER

#set env
function set_env( ) {
#    yum_com="yum  --disablerepo=\* --enablerepo=centos-base --releasever=centos7.3-170424 -c /var/lib/jenkins/work/iso_7.3.repo list available | tr -s ' ' | cut -d ' ' -f1,2 | grep i686 | grep centos | cut -d '.' -f1"
    yum_com="setarch x86_64 yum  --disablerepo=\* --enablerepo=centos-base --releasever=centos7.3-170424 -c /var/lib/jenkins/work/iso_7.3.repo list available  \*centos\*.i686 | tr -s ' ' | cut -d '.' -f1"
    export PATH=$PATH:/home/ems-git-common:/home/ems-scripts
    PRO_NAME_GIT=${GIT_URL##*/}
    PROJECT_NAME=${PRO_NAME_GIT/.git/}
    if [ "$GIT_BRANCH" = "origin/master" ];then
        repo_ver=7
        br="master"
        cfg=""
    elif [ "$GIT_BRANCH" = "origin/ems7.3" ];then
        repo_ver=7.3
        br="ems7.3"
        cfg="ems7.3"
    fi    
    targer_patch="/home/backups/repos/emindserver/${repo_ver}/updates/x86_64"
#    targer_patch="/var/lib/jenkins/work/wubo/x86_64"
    targer_patch_debug="/home/backups/${repo_ver}/debuginfo/x86_64"
    targer_patch_srpm="/home/backups/repos/emindserver.srpm"
}

#delete project under SOURCE resource for resolve build error
function rm_old_source( ) {
    git clean -dfx
    git reset --hard
    git pull origin ${br}:${br}
}

#download resource into SOURCE
function down_new_source( ) {
    absolute=$(into_srpm.sh)
    if [ $? == 0 ];then
        src_rpm_path=${absolute##*:}
    else
        echo "down source is lose with into_srpm.sh"
        exit 1
    fi
}

#build src.rpm for mock
function build_mock( ) {
    if [ -d result.* ];then
        /bin/rm -rf result.*
    fi
    rpm_patch=$(/bin/mktemp -d result.XXXXX)

    if [ -f .arch ];then
        cat .arch | while read arch
        do
            test -z "${arch}" && continue
            if [ "${arch}x" = "i386x" ];then
                cfg=""
            fi
            /usr/bin/mock -r ${arch}${cfg}  --resultdir $rpm_patch --rebuild  ${src_rpm_path} || result="ok"
            if [ ${result}xxx  != "xxx" ];then
                /bin/cat $rpm_patch/root.log
                /bin/cat $rpm_patch/build.log
                exit 1
            fi
        done
    else
        /usr/bin/mock -r x86_64${cfg}  --resultdir $rpm_patch --rebuild  ${src_rpm_path} || result="ok"
        if [ ${result}xxx  != "xxx" ];then
            /bin/cat $rpm_patch/root.log
            /bin/cat $rpm_patch/build.log
            exit 1
        fi
    fi
}  

# move rpm to repertory and createrepo
function move_repo( ) {
           mv ${rpm_patch}/*.src.rpm ${targer_patch_srpm}
#           rm -rf ${rpm_patch}/*debuginfo*
    ls ${rpm_patch}/*.i686.rpm && {
        for i686_name in `eval ${yum_com}`
        do
                        i686_name=${i686_name/#centos/ems}
            mv -f ${rpm_patch}/${i686_name}*.i686.rpm ${targer_patch}/ || true
        done
    } || true
    mv -f ${rpm_patch}/*debuginfo*.rpm  ${targer_patch_debug}/ &&  createrepo --update ${targer_patch_debug} || true
#    mv -f ${rpm_patch}/*.rpm  ${targer_patch}/
    mv -f ${rpm_patch}/*noarch.rpm ${targer_patch}/  || true
    mv -f ${rpm_patch}/*x86_64.rpm ${targer_patch}/  || true
    rm -rf ${rpm_patch}
    createrepo --update ${targer_patch}
}

#control centre
function main ( ) {
    set_env
    rm_old_source
    down_new_source
    build_mock
    move_repo
}
main

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值