Shell调用Jenkins远程API触发job,并获取该job的控制台

需要将其中的 "your-jenkins-url.com"、"your-jenkins-username"、"your-jenkins-token"、"your-job-name"和"PARAM1=value1&PARAM2=value2" 根据实际情况进行替换。另外,这个示例脚本也做了一些暂停等待的操作以确保能够获取到输出信息。

#!/bin/bash

# Jenkins登录信息
jenkins_url="http://your-jenkins-url.com"
jenkins_user="your-jenkins-username"
jenkins_token="your-jenkins-token"

# Job名称及参数(如果有)
job_name="your-job-name"
job_params="PARAM1=value1&PARAM2=value2"

# 调用Jenkins API执行Job并获取构建号
queue_location=$(curl -sSL \
                  -D - \
                  -u "${jenkins_user}:${jenkins_token}" \
                  -X POST \
                  -H "Content-Type: application/x-www-form-urlencoded" \
                  "${jenkins_url}/job/${job_name}/buildWithParameters?${job_params}" \
                 | grep 'Location:' | sed 's/Location: //')
queue_item_number=$(echo "${queue_location%/}" | awk -F "/" '{print $(NF)}')

# 获取执行队列状态,如果还在等待中则等待,否则获取构建号
while true
do
  queue_info=$(curl -su "${jenkins_user}:${jenkins_token}" \
                 "${jenkins_url}/queue/item/${queue_item_number}/api/json")
  if [ "$(echo $queue_info | jq -r '.executable')" != null ]
  then
    build_number=$(echo $queue_info | jq -r '.executable.number')
    break
  fi
  sleep 1
done

# 等待一段时间直到构建开始
sleep 10

# 获取构建的状态
build_status=$(curl -sSL \
               -u "${jenkins_user}:${jenkins_token}" \
               "${jenkins_url}/job/${job_name}/${build_number}/api/json" \
               | jq '.building')

# 等待构建完成
while [ "${build_status}" == "true" ]
do
    sleep 5
    build_status=$(curl -sSL \
                   -u "${jenkins_user}:${jenkins_token}" \
                   "${jenkins_url}/job/${job_name}/${build_number}/api/json" \
                   | jq '.building')
done

# 获取Job控制台输出
curl -sSL \
     -u "${jenkins_user}:${jenkins_token}" \
     "${jenkins_url}/job/${job_name}/${build_number}/consoleText"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值