【jenkins】shell脚本调jenkins api接口

#使用列表for循环所要运行的job名
for variable in  job1 job2 job3
do
    #获取下一次构建编号
    job_number=`curl --silent http://ip:port/job/$variable/api/json --user account:password |jq --raw-output '.nextBuildNumber'`
    #执行job
    curl -n -X POST http://ip:port/job/$variable/buildWithParameters --user --user account:password --data cp_branch='git分支'
    #查询job状态最多循环执行5次                
    for i in `seq 1 5` 
      do
         #查询间隔时间,60s,启动下一个job最长间隔5分钟
         sleep 60
         #获取当前job运行结果
         ##job_result=$(curl --silent http://ip:port/job/$variable/lastBuild/api/json --user account:password |jq --raw-output '.result')
         job_result=`curl --silent http://ip:port/job/$variable/$job_number/api/json --user account:password |jq --raw-output '.result'`
        
         echo "=================第$i次检测当前job名:${variable},job编号:$job_number,job运行状态: $job_result ====================================="
         if [[ $job_result = "SUCCESS" ]];then
           echo "=================job:$variable构建完成,运行下一个 ==================="
         break
         elif [[ $job_result = "FAILURE" ]] || [[ $job_result = "ABORTED" ]];then
           echo "=================job:$variable构建失败,运行下一个 ==================="
         break
         elif [[ $i = 5 ]] && [[ $job_result = "null" ]];then
           echo "=================job:$variable构建超过5分钟,不等了,直接运行下一个job ==================="
         else [[ $job_result = "null" ]]
           echo "job_$variable构建中......"
         fi

     done
done

你可能感兴趣的:(#,CI持续集成,jenkins)