linux shell 自动获取Jenkins job构建是否成功

#!/bin/sh
#jobPage相当于http://ip:port/job/test/ 这个地址可以直接访问到你的job路径
jobPage=${jenkins_path}/${app_buildJob}/

#把这个项目的页面信息存到build.tmp文件中
curl -s -o build.tmp1 ${jobPage}

#对页面信息进行提取最后构建数
lastbuild=$(grep -oE "Last build \(#[0-9]*" | grep -oE "[0-9]*")

#接下来要构建的数
newbuild=$[lastbuild+1]

#触发构建
curl -u chenwx:123456 -s -d build -d delay=0sec ${jobPage}build?delay=0sec
echo "buliding ${app_buildJob} #${newbuild} url:${jobPage}"
echo -n "building..."
sleep 5

#下面为查看最新构建(刚刚触发的构建)的结果。
curl -o build.tmp2 -s --header n:${newbuild} ${jobPage}buildHistory/ajax

#判断结果文件中是否包含 In progress(排队中)|pending(构建中),是的话每三秒去重新获取结果进行判断
while grep -qE "In progress|pending" build.tmp2;

do
echo -n "."
sleep 3
curl -o build.tmp2 -s --header n:${newbuild} ${jobPage}buildHistory/ajax
done
echo

#包含Success单词为构建成功
if   grep -qE "Success" build.tmp2 ;then
     echo "Build Success"

#包含Unstable单词为构建有警告但是构建成功
elif grep -qE "Unstable" build.tmp2 ;then
     echo "Build Success, but is a Unstable build"

#包含Failed或者Aborted单词为构建失败
elif grep -qE "Failed|Aborted" build.tmp2 ;then
     echo "Build Fail"

echo "#Open Link: ${jobPage}${newbuild}/console see details"
rm -rf build.tmp*
exit 1
fi

#执行过程中产生的文件删除
rm -rf build.tmp*
————————————————



result=''

function check_result() {undefined

# clean tmp.txt, tmp.html
rm -f tmp.txt tmp.html
echo -n .
# get the build result
wget -q ${jenkins_job_url}/${jenkins_name}/ -O tmp.html
grep "job/${jenkins_name}/.*/console" tmp.html | head -n 1 > tmp.txt
while [ "$result" == "" ]; do
# check the build result
result=`grep -E 'Success|Failed' tmp.txt`
sleep 5
check_result
done
result=`grep 'Success' tmp.txt`
# clean tmp.txt, tmp.html
rm -f tmp.txt tmp.html
if [ "$result" == "" ]; then
echo -e "\nbuilding failed...pls check the programe"
exit 1
fi

}

#!/bin/bash
echo "检查tomcat运行状态..."
for (( i=0; i<12; ++i ))
do
    if [ $(curl -sIL -w "%{http_code}" -o /dev/null http://baidu.com) -eq 200 ];then
        echo "tomcat启动成功"
        break
    else
        if [[ i -eq 11 ]];then
            echo "tomcat启动失败,请查看tomcat日志"
            exit 1
        else
            echo "tomcat正在启动中..."
            sleep 5
        fi
    fi
done
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Jenkins构建后操作Shell是指在Jenkins构建完成后,执行一些Shell脚本来完成一些后续操作,例如部署应用程序、发送通知等。在Jenkins中,可以通过“构建后操作”来配置Shell脚本,这些脚本将在构建完成后自动执行。通过Shell脚本,可以实现自动化部署、自动化测试、自动化通知等功能,提高开发效率和质量。 ### 回答2: Jenkins是一个开源的持续集成工具,其中的构建后操作的 shell 非常重要,可以实现许多功能,如邮件发送、文件拷贝、代码部署等,方便我们对项目进行管理。 首先,我们需要确保系统中安装了 shell,并在 Jenkins 中配置了正确的 shell 路径。然后我们在 Jenkins构建后操作页面中点击 “执行 shell” 按钮,就可以输入要执行的 shell 脚本。在脚本中,我们可以像在终端中一样,执行命令、改变目录、定义变量和函数等等。 举个例子,我们可以在 shell 脚本中设置变量: ``` BUILD_TIME=$(date +%Y%m%d%H%M%S) ``` 接着,我们可以使用该变量,给包含构建编号的新文件名赋值: ``` NEW_FILE_NAME=result_${BUILD_TIME}_${BUILD_NUMBER}.txt ``` 然后,我们可以使用 shell 命令将构建结果输出到该文件: ``` echo "Build Result: $BUILD_RESULT" > $NEW_FILE_NAME ``` 最后,我们可以使用 shell 命令将该文件传输到指定的服务器: ``` scp $NEW_FILE_NAME user@server:/path/to/directory/ ``` 以上只是 shellJenkins 中的一种使用方式,实际上还有很多其他用途。总之,掌握 shellJenkins 中的使用,可以让我们更好地管理和监视项目。 ### 回答3: Jenkins是一款开源的持续集成工具,可以自动构建、测试和部署软件。在Jenkins构建完成后,可以进行很多操作,其中之一就是Shell操作。 Shell操作是在Jenkins构建完成之后,运行一个Shell脚本,可以执行一些自定义的操作,比如发布代码、发送邮件通知等。 首先,需要在JenkinsJob中添加后置操作。在Job的配置页面中,找到“Post-build Actions”选项,点击“Add post-build action”按钮,选择“Execute shell script”即可。 在弹出的页面中,可以编写Shell脚本。一般而言,需要定义一些变量,用于获取构建参数和环境变量,然后执行一些命令。以下是一个简单的Shell脚本示例: ``` #!/bin/bash # 获取构建参数 BUILD_NAME=${BUILD_NAME} # 获取环境变量 WORKSPACE=${WORKSPACE} # 执行命令 echo "Deploying $BUILD_NAME" cd $WORKSPACE mvn clean deploy -DskipTests ``` 在这个例子中,首先获取构建参数BUILD_NAME和环境变量WORKSPACE,然后执行了一个Maven命令,将构建结果发布到Maven仓库中。 除了Maven命令外,Shell脚本还可以执行很多其他的操作,比如拷贝文件、调用API接口、打包文件等。通过编写自定义的Shell脚本,可以满足不同的构建要求,提高持续集成的效率和可靠性。 总的来说,Jenkins构建后操作Shell非常灵活,可以根据不同的需求进行自定义操作,提高软件构建和部署的自动化程度,减轻了开发人员的工作量,提高了软件发布的质量和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值